Какой инструмент может декомпилировать DLL в исходный код С++?

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

Ответы

Ответ 1

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

Самое близкое, что вы когда-либо сможете сделать, это disasembler или отладочная информация (Log2Vis.pdb).