Мой друг скачал вредоносное ПО с Facebook, и мне любопытно посмотреть, что он делает, не заражая себя. Я знаю, что вы не можете декомпилировать .exe, но я могу хотя бы просмотреть его в Assembly или прикрепить отладчик?
Изменить, чтобы сказать, что это не исполняемый файл .NET, нет заголовка CLI.
debugging
winapi
assembly
decompiling
swilliams
источник
источник
Ответы:
С помощью отладчика вы можете интерактивно выполнять сборку программы.
С дизассемблером вы можете просмотреть сборку программы более подробно.
С помощью декомпилятора вы можете превратить программу обратно в частичный исходный код, предполагая, что вы знаете, в чем она написана (что можно узнать с помощью бесплатных инструментов, таких как PEiD - если программа упакована, вам придется сначала ее распаковать). ИЛИ Обнаружить это легко, если вы нигде не можете найти PEiD. У DIE в настоящее время сильное сообщество разработчиков на github ).
Debuggers:
Дизассемблеры:
Декомпиляторы:
Некоторые связанные инструменты, которые могут пригодиться во всех ваших действиях, - это редакторы ресурсов, такие как ResourceHacker (бесплатно) и хороший шестнадцатеричный редактор, такой как Hex Workshop (коммерческий).
Кроме того, если вы проводите анализ вредоносных программ (или используете SICE) , я искренне рекомендую запускать все на виртуальной машине, а именно на VMware Workstation . В случае SICE, это защитит вашу реальную систему от BSOD, а в случае вредоносного ПО защитит вашу реальную систему от целевой программы. Вы можете прочитать об анализе вредоносных программ с помощью VMware здесь .
Лично я работаю с Olly, WinDbg & W32Dasm и некоторыми небольшими утилитами.
Кроме того, помните, что дизассемблирование или даже отладка программного обеспечения других людей обычно, по крайней мере, противоречит лицензионному соглашению :)
источник
Отличная публикация psoul отвечает на ваш вопрос, поэтому я не буду повторять его хорошую работу, но я чувствую, что это поможет объяснить, почему это одновременно совершенно правильный, но также и ужасно глупый вопрос. В конце концов, это место для изучения, верно?
Современные компьютерные программы производятся путем серии преобразований, начиная с ввода понятного человеку текста текстовых инструкций (называемого «исходным кодом») и заканчивая машиночитаемым набором инструкций (называемых альтернативно «двоичным» или «машинным»). код").
Способ, которым компьютер выполняет набор инструкций машинного кода, в конечном итоге очень прост. Каждое действие, которое может выполнить процессор (например, чтение из памяти, добавление двух значений), представлено числовым кодом. Если бы я сказал вам, что цифра 1 означала крик, а цифра 2 означала хихиканье, а затем поднял карты с цифрами 1 или 2, ожидая, что вы будете кричать или хихикать соответственно, я бы использовал ту же систему, что и компьютер. работать.
Бинарный файл - это просто набор этих кодов (обычно называемых «кодами операций») и информацией («аргументами»), на которые действуют коды операций.
Теперь ассемблер - это компьютерный язык, где каждое командное слово в языке представляет ровно один код операции на процессоре. Существует прямая трансляция 1: 1 между командой на языке ассемблера и кодом операции процессора. Вот почему сборка кодирования для процессора x386 отличается от сборки кодирования для процессора ARM.
Разборка - это просто: программа читает двоичный код (машинный код), заменяя коды операций эквивалентными командами на языке ассемблера, и выводит результат в виде текстового файла. Это важно понимать; если ваш компьютер может читать двоичный файл, то вы также можете прочитать двоичный файл, либо вручную с таблицей кода операции в руке (ick), либо через дизассемблер.
У дизассемблеров есть некоторые новые приемы и все такое, но важно понимать, что дизассемблер - это, в конечном счете, механизм поиска и замены. Вот почему любое EULA, которое запрещает это, в конечном счете дует горячим воздухом. Вы не можете сразу разрешить компьютеру читать данные программы, а также запретить компьютеру читать данные программы.
(Не поймите меня неправильно, были попытки сделать это. Они работают так же, как DRM для файлов песен.)
Тем не менее, существуют предостережения в отношении подхода к разборке. Имена переменных не существуют; такая вещь не существует для вашего процессора. Библиотечные вызовы запутаны до чертиков и часто требуют разборки дополнительных двоичных файлов. И сборка трудна для чтения в самых лучших условиях.
Большинство профессиональных программистов не могут сидеть и читать на ассемблере без головной боли. Для любителя это просто не произойдет.
Во всяком случае, это несколько затуманенное объяснение, но я надеюсь, что это поможет. Каждый может смело исправлять любые искажения с моей стороны; Прошло много времени. ;)
источник
Хорошие новости. На самом деле IDA Pro теперь бесплатна для своих старых версий: http://www.hex-rays.com/idapro/idadownfreeware.htm
источник
Любой приличный отладчик может сделать это. Попробуйте OllyDbg . (edit: у которого есть отличный дизассемблер, который даже декодирует параметры для вызовов WinAPI!)
источник
x64dbg
хороший отладчик с открытым исходным кодом, который активно поддерживается.источник
Конечно, посмотрите на IDA Pro . Они предлагают версию eval, так что вы можете попробовать ее.
источник
Если вы просто пытаетесь выяснить, что делает вредоносная программа, возможно, будет гораздо проще запустить ее под чем-то вроде бесплатного инструмента Process Monitor, который будет сообщать всякий раз, когда он пытается получить доступ к файловой системе, реестру, портам и т. Д.
Кроме того, использование виртуальной машины, такой как бесплатный сервер VMWare, очень полезно для такой работы. Вы можете создать «чистое» изображение, а затем просто возвращаться к нему при каждом запуске вредоносной программы.
источник
Вы можете получить некоторую информацию, просматривая ее в сборке, но я думаю, что проще всего запустить виртуальную машину и посмотреть, что она делает. Убедитесь, что у вас нет открытых акций или чего-то в этом роде;)
источник
Бумеранг также стоит проверить.
источник
То, что вы хотите, это тип программного обеспечения под названием «дизассемблер».
Быстрый Google дает это: Ссылка
источник
Я не могу поверить, что никто еще ничего не сказал об Immunity Debugger .
Immunity Debugger - это мощный инструмент для написания эксплойтов, анализа вредоносных программ и анализа бинарных файлов. Первоначально он был основан на исходном коде Ollydbg 1.0, но с исправленной ошибкой восстановления имен. Он имеет хорошо поддерживаемый Python API для легкой расширяемости, поэтому вы можете написать свои скрипты Python, которые помогут вам в анализе.
Кроме того, есть хороший Питер из команды Corelan , который называется mona.py , отличный инструмент, кстати.
источник
Если вы хотите запустить программу, чтобы увидеть, что она делает, не заражая ваш компьютер, используйте ее с виртуальной машиной, такой как VMWare или Microsoft VPC, или с программой, которая может изолировать изолированную программную среду от SandboxIE.
источник
Если у вас нет времени, отправьте вредоносное ПО на cwsandbox:
http://www.cwsandbox.org/
http://jon.oberheide.org/blog/2008/01/15/detecting-and-evading-cwsandbox/
НТН
источник
Вы можете использовать dotPeek, очень хорошо для декомпиляции исполняемого файла. Это бесплатно.
https://www.jetbrains.com/decompiler/
источник
Я бы сказал, что в 2019 году Гидру ( https://ghidra-sre.org/ ) стоит проверить. Он имеет открытый исходный код (и бесплатный) и обладает феноменальными возможностями анализа кода, включая возможность декомпиляции вплоть до довольно читабельного кода на языке Си.
источник
Комплект проводника может делать то, что вы хотите.
источник