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


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

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

15 187

15 ответов:

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

Отладчики:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

быстрый 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

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

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

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

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

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

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