сборка — разобрать c ++ dll примерно до машинного кода

Я знаю, что вы не можете иметь C ++ dll и ожидаете иметь его в качестве исходного кода, я прав? Но в то же время, когда я возвращаю C ++ dll к необработанным данным, используя DUMPBIN, есть некоторые вещи, которые можно сделать, чтобы интерпретировать это, верно? Например, мы знаем основные сопоставления для большинства популярных операторов и все.

Существует ли инструмент, который может приблизительно интерпретировать эти необработанные машинные данные в нечто большее, чем код или инструкция? Проблема в том, что мне не хватает времени, чтобы самому написать это, чтобы почесать! поэтому я ищу инструмент или что-то для этого.

1

Решение

Тебе необходимо дизассемблер, это инструмент, который принимает двоичный объект (например, скомпилированный файл, библиотеку или даже исполняемый файл) и пытается переосмыслить его содержимое как сборку.

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

Также для C ++ это немного сложно из-за названия коверкание.

Попробуй взглянуть на Objdump.

0

Другие решения

Вы можете разобрать разделы кода DUMPBIN / DISASS — но если вам нужен «код», такой как C ++, вам нужен декомпилятор. Однако они далеки от совершенства и часто создают довольно нечитаемый код — да, это то, что вы можете вставить в компилятор, но вряд ли это то, что я бы назвал «читабельным для человека».

0

По моему предвзятому мнению, лучший дизассемблер — IDA (Интерактивный дизассемблер). Это несколько дорого, так как оно предназначено для профессионального использования, но есть бесплатная (более старая) версия, которую вы можете попробовать:

http://www.hex-rays.com/products/ida/support/download_freeware.shtml

Hex-Rays Decompiler (дополнение для IDA) может создать псевдокод C из разборки, который во многих случаях может быть перекомпилирован заново.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector