#декомпиляция #обратная_разработка
Здравствуйте! Меня очень интересует вопрос, как можно определить язык программы, если она уже откомпилирована?
Ответы
Ответ 1
Это, на самом деле, дело не из легких, поверьте! С супер точностью определить ничего не получится, так как языки могут быть разные, поддерживаемые, скажем одной средой программирования( VS, например, в которой поддерживается разработка на свыше 10 языках), а та, в свою очередь, добавляет сходную последовательность asm-секций в машинный код любого приложения, написанного в этой среде. Поэтому, скажем, с точностью( и то не всегда 100%-ой! ) можно определить среду разработки. Делается это, естественно, под дезассемблером. Лучший на мой взгляд( и где я, кстати, чаше всего провожу отладку ) - это OllyDBG. Под ним очень легко и быстро можно разобрать почти любую софтину( за исключением упакованой, обфусцированной и т.д ). Так, VS, например, добавляет в ассемблерный код несколько секций, порядок которых специфичен для данной среды. Последовательность похожа на эту( только пример! ), насколько я помню: .686 .model flat, c option casemap :none ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« .data ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« .code MyFunc PROC uses ecx edi, X: DWORD, Y:DWORD ; TODO ret MyFunc ENDPОтвет 2
Самое простое и быстрое для вас решение - взять PeID и проанализировать им исполняемый файл. Если программа без защит, есть шансы успешного определения.
Комментариев нет:
Отправить комментарий