2016-01-05 54 views
-3

У меня нет опыта работы с DLL-файлами или DLL-файлами, и мне нужно увидеть код функции в этих файлах. Я не знаю, на какой из них смотреть, поиск в stackoverflow привел меня к демпфиру, и я могу использовать dumpbin/EXPORTS, чтобы увидеть заголовки и функции. Но как я могу увидеть фактический код? Могу ли я сделать это через консоль или мне нужно загрузить отдельную программу?Просмотр исходного кода из файла .dll или .lib с использованием dumpbin

P.S: Я использую Visual Studio, и это функции C++.

Любая помощь будет оценена по достоинству.

+1

Вы не можете увидеть исходный код, используя dumpbin. –

+0

Вы можете увидеть машинный код, но в этих файлах нет исходного кода. Что ты пытаешься сделать? –

+1

Дисассемблер предоставит вам доступ к читаемой форме машинного кода в библиотеке, но вы никогда не получите исходный источник. –

ответ

5

Увидеть исходный код из скомпилированного файла, такого как .lib или .dll, почти невозможно, так как это в основном скомпилированный файл.

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

Очевидно, что если ваша библиотека поступает из проекта с открытым исходным кодом, вы можете найти исходный код, запросив our dearest friend.

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

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