У меня возник вопрос!!! Можно ли каким то образом декомпилировать exe-зешний файл, скомпилированный на паскале??? Если да, то как???
сомневаюсь....
дизасемблировать можно, но декомпилировать....
В пaкете Turbo Analyst 7.0 есть програма котоpaя может восстaновить
интеpфейсную чaсть скомпилиpовaнного модуля. Подобной инфы в нэте полно.
GoodWind
15.10.2004 23:57
Цитата
интеpфейсную
а смысл нам от итнрфейсной ?
весь код давай !
Я так понял, восстановить исходный код невозможно полностью, ну а хотя бы частично?
Amro, не слушай их, код востановить нельзя!
(Я имею ввиду код на паскале)
только на асм можно. Но это не нужно.
GoodWind
16.10.2004 23:06
OLeg_Z, а я вот видел прогу на пасе, которая выводит свой код, это как объяснить ?
прога была опубликована в одном из номеров Harm`a (был когда-то такой e-mag)
Так она протсо текст выводит!
Ну не возможно преобразовать АСМ в язык высшего уровня.
Пардон, высокого.
В высшей тем более.
Oleg_Z
ну вообщето возможно ,только не факт что полученное нечто будет соответствовать исходнику.
Это как дифференцирование и интегрирование : при интегрировании ты получаешь не конкретную функцию а целый класс.
Согласен, но иногда вообще невозможно... зависит от кода, если там огромное количество безусловных переходов, то востановить проргамму можно огромным количеством способов, и все будут разными, и то, востановить можно только теоритически!
GoodWind
17.10.2004 23:28
Цитата
Так она протсо текст выводит!
найду Харм (или сам поищи) дам почитать
--
смотри в одном из номеров тут:
в одном из первых трех, по-моему
http://scene.ru/harm/index.html
К слову:
На нашем форуме уже была прога, которая сама себя распечатывала...
Цитата(Amro @ 14.10.04 23:05)
Можно ли каким то образом декомпилировать exe-зешний файл, скомпилированный на паскале???
Да, если прии компиляции был включен режим
Options -> Debugger -> Standalone debugging
Другое дело, что этого никто обычно не делает
А можно подробнее про этот режим?
Ozzя
Да очень бы хотелось узнать, как и чего??
GoodWind
19.10.2004 16:19
ежели мне не изменяет память (что бывает часто), то SofIce и подобные отладчики и пользуются Debug information, генерируемой Debug Mode
GoodWind с каких это пор "SoftIce и другие отладчики" стали декомпилировать асм в паскаль? по отладочной информации можно восстановить только названия переменных, блоков программы (функций/процедур), меток и т.д. но не последовательность высокоуровневых команд!!! тем более после оптимизации их компилятором...
а теоретический принцип декомпиляции такой:
если например в проге стоит строчка
Код
a:=0;
а ее ассемблерный аналог выглядит например так
Код
lea di,a
mov [di],0
то надо каждый такой ассемблерный блок заменять выше приведенной строчкой...
но на деле компилятор вполне может сделать такой код:
Код
xor ax,ax
mov [ebp+8],ax
... понятно, о чем речь?
GoodWind
19.10.2004 18:00
Цитата
с каких это пор "SoftIce и другие отладчики" стали декомпилировать асм в паскаль?
речь шла о Debug а не о Disasm...
Цитата
восстановить только названия переменных, блоков программы (функций/процедур), меток и т.д.
как-раз при помощи них, помоему, SIce и ловит breakpoint`ы...
Цитата
но не последовательность высокоуровневых команд!!!
ясен перец...
даже после оптимизации обычного кода на паскале, востановить его первоначальный вариант невозможно, что уж говорить о переводе на асм и еще оптимизации его
)
Цитата(Amro @ 19.10.04 9:55)
Ozzя
Да очень бы хотелось узнать, как и чего??
Если вы при компиляции устанавливаете этот режим, то при отладке в tdx появляется исходник программы на паскале. Правда, почти все программы и модули откомпилированы без этого. Граф, например, а жаль ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.