Как вытащить исходный код из программы

У меня есть архивированный git-репозиторий в формате tar.gz, содержащий файл .pack в папке объекта.

Как мне извлечь из него исходный код?

изменён Ashit Vora 101
задан Ashit Vora 101

1 ответ 1

Packfiles — это один из способов сохранения объектов в git (см. « Распаковка Git Packfiles »). Из ваших комментариев похоже, что архив содержит содержимое каталога .git , и в этом случае я предполагаю, что тарбол также содержит папки, такие как info и refs в дополнение к objects .

Таким образом, чтобы получить реальный исходный код, просто распакуйте папку:

tar -xvf archive.tar.gz

и переместите содержимое в каталог с именем .git . Другими словами, вы должны получить дерево каталогов, которое выглядит как

myproject |— .git | |—objects | | |— pack | | | |— pack-cdfae92.idx | | | |— pack-cdfae92.pack

Это «создаст» хранилище в вашем текущем каталоге. Вы можете подтвердить это, запустив git status — он скажет, что вы удалили кучу файлов. Чтобы снова заполнить каталог (т. Е. «Восстановить» файлы), просто запустите git checkout master .

Как посмотреть и скопировать html код страницы сайта, открыть

Источник: poweruser.guru

Как просмотреть исходный код DLL-файлов?

Вы можете сделать гамбургеры с коровой, но вы не можете сделать корову с гамбургерами.

user237761 30 янв ’10 в 18:00 2010-01-30 18:00
2010-01-30 18:00

Процесс перехода от dll к исходному коду известен как декомпиляция. Это технология, специфичная для исходного языка. Можете ли вы дать нам больше информации об исходном языке, чтобы мы могли указать вам на конкретную технологию?

РЕДАКТИРОВАТЬ Обновление

Если C# является языком выбора, то лучший способ увидеть источник — использовать Reflector.exe. Обратите внимание, что это не вернет вам 100% оригинал. Это вместо того, чтобы оценить, каким был первоначальный источник. Он может и будет давать точные результаты при определенных обстоятельствах.

Читайте также:
Максимальное количество четверных в программе

user23283 30 янв ’10 в 17:51 2010-01-30 17:51
2010-01-30 17:51

Мне удалось извлечь код из DLL-файла

Этот снимок экрана имеет базовую реализацию библиотеки (я думаю)

user5237614 06 окт ’16 в 07:25 2016-10-06 07:25
2016-10-06 07:25

Поскольку вы сказали, что используете C#.Net, вы можете использовать .NET Reflector для декомпиляции DLL, например, в код C#. Как уже говорили другие, вы получите достоверное представление об исходном коде, но, возможно, не о точном исходном коде C#.

Есть исключение — некоторые компании применяют обфускатор, такой как Salamander .NET Obfuscator, к своим сборкам перед их отправкой. Результатом этого процесса является то, что декомпилированный код сложнее для понимания, чем если бы обфускатор не использовался. Некоторые компании зашли так далеко, что зашифровали сборки. Запутывание и шифрование защищают интеллектуальную собственность от случайных атак, но не могут помешать значительным, тщательно продуманным усилиям по обратному проектированию Учитывая эту реальность, не все компании даже идут на попытки запутывания, а тем более шифрования.

Скачиваем защищённое видео через cmd FFmpeg или как скачать потоковое видео

Вы не говорите, откуда появились dll, но если вы их купили, Reflector не сильно вам поможет, если продавец не хочет, чтобы вы заглядывали внутрь. И, наконец, имейте в виду, что если вы приобрели программное обеспечение, его декомпиляция (независимо от того, были ли скрыты библиотеки DLL) может нарушать лицензионное соглашение.

Источник: stackru.com

Как вытащить исходный код из программы

в КАКОЙ «исходный код» ?

Есть преобразование a + b = c

Так вот, я тебе щас дам значение c, а ты мне найдешь значение a и b? Идет?

>Нажал «выбрать DLL» — В исходный код?

>Но ведь DLL — это набор функций, процедур и т.д., которые по особому алгоритму преобраазуются в библиотеку

Читайте также:
Активная ячейка в программе excel это

с процедурами, функциями и т.д. работаешь ты.. ну и все тут наверно 🙂 а вот проц работает с регистрами, простыми коммандами (скопировать значение, умножить, отнять и т.д.) над этими самыми регистрами и памятью, ну и ещё много с чем, но это уже не интереснро.. так вот компилятор переводит с языка, с которым работаешь ты, на язык, с которым работает проц.. и вместо

procedure add;
var x, y, zu: integer;
begin
x :=10;
y :=20;
zu=x+y;
end;

полчучается что-то такое:

mov eax,$0000000a
mov edx,$00000014
lea esi,[edx+eax]

ну как, восстановишь из второго первое? ; ) с названиями переменных и процедуры?

А серьезно компилятор такое делает с кодом? А можно ему как-нибудь сказать, чтобы он использовал мои переменные, из кода? И вообще, можно отключить эти регистры, комманды и непонятные числа $0000000a? А то, что же это получается, я пишу, пишу, а оно все псу под хвост?

Источник: delphimaster.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru