Можно ли «декомпилировать» EXE-файл Windows? Или хотя бы сборку посмотреть?

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

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


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

Отладчики:

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

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

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

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

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

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

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

Лично я использую Olly, WinDbg & W32Dasm и некоторые небольшие служебные инструменты.

Также помните, что дизассемблирование или даже отладка чужого программного обеспечения обычно как минимум противоречит EULA 🙂


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

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

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

Двоичный файл — это просто набор этих кодов (обычно называемых «операционными кодами») и информации («аргументы»), на которую действуют операционные коды.

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

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

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

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

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

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

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


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

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

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

Двоичный файл — это просто набор этих кодов (обычно называемых «операционными кодами») и информации («аргументы»), на которую действуют операционные коды.

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

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

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

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

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

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

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


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


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


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


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


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


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


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

Кроме того, использование виртуальной машины, такой как бесплатный сервер VMWare, очень полезно для такого рода работы. Вы можете создать «чистый» образ, а затем просто возвращаться к нему каждый раз при запуске вредоносной программы.


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

Кроме того, использование виртуальной машины, такой как бесплатный сервер VMWare, очень полезно для такого рода работы. Вы можете создать «чистый» образ, а затем просто возвращаться к нему каждый раз при запуске вредоносной программы..


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


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


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


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


I ‘ Я бы сказал, что в 2019 году стоит попробовать Гидру (https://ghidra-sre.org/). Это открытый исходный код (и бесплатный), а также феноменальные возможности анализа кода, включая возможность полностью декомпилировать код на C.


Я бы сказал, что в 2019 году стоит попробовать Гидру (https://ghidra-sre.org/). Это открытый исходный код (и бесплатный), а также феноменальные возможности анализа кода, включая возможность полностью декомпилировать код на C.


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


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


Я не могу поверить, что никто ничего не сказал об отладчике Immunity Debugger.

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

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


Я не могу поверить, что никто ничего не сказал о Immunity Debugger.

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

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


То, что вам нужно, — это программное обеспечение, называемое «Дизассемблер».

Быстрый поиск в Google дает следующее: Ссылка


Что вам нужно, так это программное обеспечение, называемое «Дизассемблер «.

Быстрый поиск в Google дает следующее: Ссылка


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


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


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

http://www.cwsandbox.org/

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

HTH


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

http://www.cwsandbox.org/

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

HTH


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

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


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

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


Пакет проводника может делать то, что вы хотите.


Пакет проводника может делать то, что вы хотите.

Оцените статью
techsly.ru
Добавить комментарий