Как превратить DLL в код C ++?

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

6

Решение

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

В противном случае вы можете начать с использования такого инструмента, как Dependency Walker, чтобы получить библиотеки DLL и функции, от которых он зависит, и функции, которые он экспортирует. Оттуда вы можете найти интересующие вас функции и использовать дизассемблер, такой как IDA, чтобы посмотреть, что они делают.

13

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

Вы можете увидеть список экспортируемых функций, используя DUMPBIN инструмент. Если функции C ++ экспортируются, вы можете определить параметры по названию.

Вы можете извлечь все ресурсы из библиотеки DLL, просто «открыв» ее как файл для просмотра ресурсов в Visual Studio. Если DLL является библиотекой на основе COM, есть небольшая вероятность, что библиотека типов будет встроена в нее как ресурс. И если у вас есть библиотека типов, вы можете #import ее, чтобы восстановить файлы заголовков для открытых интерфейсов.

Это примерно так же хорошо, как и получается.

2

Вам нужен просмотрщик PE-файлов. Это скажет вам экспорт из DLL, и вы можете получить данные в разделе .text, чтобы увидеть машинный код.

1
По вопросам рекламы [email protected]