2009-08-24 20 views
17

Ho una vecchia DLL che ha smesso di funzionare (log2vis.dll) e voglio guardarci dentro per vedere quali oggetti usa.
La DLL è stata scritta in C++ (non .NET). C'è uno strumento che decompila/disassembla i file C++?Quale strumento può decompilare una DLL nel codice sorgente C++?

+0

Questo non è un duplicato. L'altra domanda riguarda specificamente Pro * C/C++ che è un linguaggio Oracle per scrivere e leggere i loro sistemi RDMS. Inoltre, l'altra domanda era chiusa come fuori tema. Questa domanda è valida e merita una risposta, secondo me. – Blisterpeanuts

risposta

21

Questo potrebbe essere impossibile o almeno molto difficile. I contenuti della DLL non dipendono (molto) dal fatto che sia scritto in C++; è tutto il codice della macchina. Quel codice potrebbe essere stato ottimizzato in modo tale che molte informazioni presenti nel codice sorgente originale siano semplicemente sparite.

Detto questo, here è un articolo che passa attraverso molto materiale su come farlo.

4

Penso che una DLL C++ sia un file di codice macchina. Pertanto la decompilazione produrrà solo il codice assembler. Se riesci a leggerlo e creare C++ da quello che stai facendo.

+3

non c'è già qualcosa che possa un po 'mappare il file di codice della macchina all'incirca in c o C++? – FidEliO

3

Non c'è davvero alcun modo di farlo poiché la maggior parte delle informazioni utili viene scartata nel processo di compilazione. Tuttavia, potresti voler dare un'occhiata a this site per vedere se riesci a trovare un modo per estrarre qualcosa dalla DLL.

5

Non ci sono decompilatori di cui sono a conoscenza. W32dasm è un buon disassemblatore Win32.

Problemi correlati