2009-08-24 379 views
17

Tengo una DLL antigua que dejó de funcionar (log2vis.dll) y quiero ver dentro de ella para ver qué objetos utiliza.
La DLL se escribió en C++ (no en .NET). ¿Hay alguna herramienta que descompile/desensamble archivos C++?¿Qué herramienta puede descompilar una DLL en código fuente de C++?

+0

Esto no es un duplicado. La otra pregunta se refiere específicamente a Pro * C/C++ que es un lenguaje Oracle para escribir y leer sus sistemas RDMS. Además, la otra pregunta se cerró como fuera de tema. Esta pregunta es válida y merece una respuesta, en mi opinión. – Blisterpeanuts

Respuesta

21

Esto puede ser imposible o al menos muy difícil. Los contenidos de la DLL no dependen (mucho) de que estén escritos en C++; es todo código de máquina. Ese código podría haberse optimizado, por lo que mucha información que estaba presente en el código fuente original simplemente se ha ido.

Dicho esto, here es un artículo que pasa por mucho material sobre cómo hacer esto.

4

Creo que una DLL de C++ es un archivo de código de máquina. Por lo tanto, la descompilación solo dará como resultado un código de ensamblador. Si puede leer eso y crear C++ desde allí, estará listo.

+3

¿no hay algo que pueda mapear de alguna manera ese archivo de código de máquina más o menos a c o C++? – FidEliO

3

Realmente no hay forma de hacerlo, ya que la mayor parte de la información útil se descarta en el proceso de compilación. Sin embargo, es posible que desee echar un vistazo a this site para ver si puede encontrar alguna forma de extraer algo de la DLL.

5

No hay decompiladores que yo sepa. W32dasm es un buen desensamblador Win32.

Cuestiones relacionadas