Можно ли "декомпилировать" окна.exe? Или хотя бы посмотреть сборку?

мой друг загрузил некоторые вредоносные программы из Facebook, и мне любопытно посмотреть, что он делает, не заражая себя. Я знаю, что ты не можешь декомпилировать Ан .exe, но могу ли я хотя бы просмотреть его в сборке или прикрепить отладчик?

Edit, чтобы сказать, что это не исполняемый файл .NET, без заголовка CLI.

15 ответов


с отладчик вы можете шагнуть через сборку программы в интерактивном режиме.
С дизассемблер, вы можете просмотреть сборку программы более подробно.
С декомпилятор, вы можете превратить программу обратно в частичный исходный код, предполагая, что вы знаете, в чем она была написана (что вы можете узнать с помощью бесплатных инструментов, таких как Святого Джеймса, Грин - если программа упакована, вам придется сначала распаковать ее или обнаружить-это-легко если нигде не найдешь Пейда. DIE имеет сильное сообщество разработчиков на github в настоящее время).

Отладчики:

  • OllyDbg, бесплатный, прекрасный 32-битный отладчик, для которого вы можете найти множество пользовательских плагинов и скриптов, чтобы сделать его еще более полезным.
  • WinDbg, бесплатно, вполне способный отладчик от Microsoft. WinDbg особенно полезен для просмотра внутренних компонентов Windows, поскольку он знает больше о структурах данных, чем другие отладчики.
  • SoftICE, SICE для друзей. Коммерческая деятельность и развитие прекратились в 2006 году. SoftICE - это своего рода хардкорный инструмент, который работает под операционной системой (и останавливает всю систему при вызове). SoftICE по-прежнему используется многими профессионалами, хотя может быть трудно получить и не работать на некотором оборудовании ( или программном обеспечении-а именно, он не будет работать на Vista или NVIDIA gfx карты.)

дизассемблеры:

  • IDA Pro(коммерческая) - верхняя часть линии дизассемблера / отладчика. Используется большинством специалистов, как аналитики вредоносных программ и т. д. Стоит довольно много баксов, хотя (существует бесплатная версия, но он довольно ограничен)
  • W32Dasm(бесплатно) - немного устарел, но получает работу. Я считаю, что W32Dasm является abandonware в эти дни, и есть множество пользовательские хаки, чтобы добавить некоторые очень полезные функции. Вам придется оглядеться, чтобы найти лучшую версию.

декомпиляторы:

  • Visual Basic:декомпилятор VB, коммерческий, производит несколько идентифицируемый байт-код.
  • Делфи: Диди, свободный, производит исходный код хорошего качества.
  • C:HexRays, рекламы, плагин для IDA Pro от той же компании. Дает отличные результаты но стоит большой доллар и не будет продаваться кому попало (или так я слышал).
  • .NET (C#):dotPeek, бесплатно, декомпилирует .NET 1.0-4.5 сборки на C#. Поддержка. файл DLL. ,исполняемый. ,промелькнуть. ,VSIX, но .nupkg все, а .файлы winmd.

некоторые связанные инструменты, которые могут пригодиться в том, что вы делаете, - это редакторы ресурсов, такие как ResourceHacker (бесплатно) и хороший шестнадцатеричный редактор, такой как Хекс Мастерской (коммерческий.)

кроме того, если вы делаете анализ вредоносных программ (или конюх), Я от всего сердца предлагаю запустить все внутри виртуальной машины, а именно VMware Workstation. В случае SICE он защитит вашу фактическую систему от BSODs, а в случае вредоносных программ он защитит вашу фактическую систему от целевой программы. Вы можете прочитать об анализе вредоносных программ с VMware здесь.

лично я катаюсь с Olly, WinDbg & W32Dasm и некоторые более мелкие утилиты.

кроме того, помните, что разборка или даже отладка чужие программное обеспечение, как правило, против EULA по крайней мере:)


отличный пост psoul отвечает на ваш вопрос, поэтому я не буду копировать его хорошую работу, но я чувствую, что это поможет объяснить, почему это сразу совершенно правильный, но и ужасно глупый вопрос. В конце концов, здесь есть чему поучиться, верно?

современные компьютерные программы производятся посредством серии преобразований, начиная с ввода читаемого человеком текста инструкций (называемого "исходный код") и заканчивая читаемым компьютером текстом инструкций (называемого альтернативно "двоичный" или "машинный код").

способ, которым компьютер выполняет набор инструкций машинного кода, в конечном счете очень прост. Каждое действие процессора (например, чтение из памяти, добавление двух значений) представлено числовым кодом. Если бы я сказал вам, что число 1 означает крик, а число 2 означает хихиканье, а затем поднял карты с 1 или 2 на них, ожидая, что вы закричите или хихикнете соответственно, я бы использовал то, что по существу является той же системой компьютер использует для работы.

двоичный файл-это просто набор этих кодов (Обычно называемых "op-кодами") и информация ("аргументы"), на которую действуют коды op.

теперь язык ассемблера-это компьютерный язык, где каждое командное слово на языке представляет ровно один op-код на процессоре. Существует прямой перевод 1:1 между командой языка ассемблера и op-кодом процессора. Вот почему сборка кодирования для процессора x386 отличается от сборки кодирования для процессор ARM.

разборка-это просто: программа считывает двоичный файл (машинный код), заменяя op-коды эквивалентными командами языка сборки и выводит результат в виде текстового файла. Важно понять это; если ваш компьютер может читать двоичный файл, вы также можете прочитать двоичный файл вручную с таблицей op-кода в руке (ick) или через дизассемблер.

дизассемблеры имеют некоторые новые трюки и все такое, но это важно понимать, что дизассемблер в конечном счете является механизмом поиска и замены. Вот почему любой EULA, который запрещает это, в конечном итоге выдувает горячий воздух. Вы не можете сразу разрешить компьютеру читать данные программы, а также запретить компьютеру читать данные программы.

(Не поймите меня неправильно, были попытки сделать так. Они работают так же как DRM на музыкальные файлы.)

тем не менее, есть оговорки к подходу разборки. Имена переменных не существуют; такая вещь не существует для вашего процессора. Вызовы библиотеки сбивают с толку и часто требуют разборки дополнительных двоичных файлов. А сборку в лучших условиях Читать чертовски трудно.

большинство профессиональных программистов не могут сидеть и читать ассемблер без головной боли. Для любителя этого просто не случится.

в любом случае, это несколько затушеванное объяснение, но я надеюсь, что это поможет. Каждый может чувствовать себя свободно, чтобы исправить любые ошибки на моем часть; это было давно. ;)


любой приличный отладчик может это сделать. Попробуй!--1-->OllyDbg. (edit: у которого есть отличный дизассемблер, который даже декодирует параметры для вызовов WinAPI!)


хорошая новость. IDA Pro на самом деле бесплатно для своих старых версий сейчас: http://www.hex-rays.com/idapro/idadownfreeware.htm


x64dbg - хороший отладчик с открытым исходным кодом, который активно поддерживается.


конечно, посмотрите на IDA Pro. Они предлагают версию eval, чтобы вы могли попробовать ее.


Если вы просто пытаетесь выяснить, что делает вредоносное ПО, может быть гораздо проще запустить его под чем-то вроде бесплатного инструмента Контролировать Процесс который будет сообщать, когда он пытается получить доступ к файловой системе, реестру, портам и т. д...

кроме того, используя виртуальную машину, такую как free сервер VMWare очень полезно для такого рода работы. Вы можете сделать "чистый" образ, а затем просто вернуться к нему каждый раз, когда вы запускаете вредоносное ПО.


то, что вы хотите, это тип программного обеспечения под названием "дизассемблер".

быстрый google дает это:http://www.geocities.com / ~sangcho/disasm.html


вы можете получить некоторую информацию, просматривая ее в сборке, но я думаю, что проще всего запустить виртуальную машину и посмотреть, что она делает. Убедитесь, что у вас нет открытых акций или чего-то подобного, что он может прыгать через ;)


Бумеранг может также стоит проверить.


Если вы хотите запустить программу, чтобы увидеть, что она делает без заражения компьютера, используйте с виртуальной машиной, как в VMware или Microsoft VPC, или программа, которая может изолировать программу, как Sandboxie не


Если у вас нет времени, отправьте вредоносное ПО в cwsandbox:

http://www.cwsandbox.org/

http://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/

HTH


Я не могу поверить, что никто ничего не говорил про Иммунитет Отладчик, пока нет.

иммунитет отладчик является мощным инструментом для записи эксплойтов, анализа вредоносных программ и обратного инженера двоичных файлов. Первоначально он был основан на исходном коде Ollydbg 1.0, но с Исправлена ошибка resoution имен. Он имеет хорошо поддерживается Python API для легкой расширяемости, поэтому вы можете написать свои скрипты python, чтобы помочь вам в анализе.

кроме того, есть хороший Питер из команды Corelan написал mona.py инструмент отлично кстати.


вы можете использовать dotPeek, очень хорошо для декомпиляции exe-файла. Это бесплатно.

https://www.jetbrains.com/decompiler/


на explorer suite может делать то, что вы хотите.