Какой инструмент может декомпилировать DLL в исходный код C ++? - PullRequest
27 голосов
/ 24 августа 2009

У меня старая перестала работать DLL (log2vis.dll), и я хочу заглянуть внутрь нее, чтобы увидеть, какие объекты она использует.
DLL была написана на C ++ (не .NET). Существует ли инструмент для декомпиляции / дизассемблирования файлов C ++?

Ответы [ 5 ]

26 голосов
/ 24 августа 2009

Это может быть невозможно или, по крайней мере, очень сложно. Содержимое DLL не зависит (сильно) от того, что написано на C ++; это все машинный код. Этот код мог быть оптимизирован, поэтому большая часть информации, которая присутствовала в исходном исходном коде, просто исчезла.

Тем не менее, здесь - это одна статья, в которой много материала о том, как это сделать.

10 голосов
/ 24 августа 2009
8 голосов
/ 24 августа 2009

Я думаю, что C ++ DLL - это файл машинного кода. Поэтому декомпиляция приведет только к коду ассемблера. Если вы можете прочитать это и создать C ++, тогда вы готовы.

5 голосов
/ 24 августа 2009

Нет никаких декомпиляторов, о которых я знаю. W32dasm - хороший дизассемблер Win32.

4 голосов
/ 24 августа 2009

Нет никакого способа сделать это, так как большая часть полезной информации отбрасывается в процессе компиляции. Тем не менее, вы можете взглянуть на это сайт , чтобы посмотреть, сможете ли вы найти какой-нибудь способ извлечь что-то из DLL.

...