Reverse Engineering von C++ - DLL
Ich habe ein kleines Dienstprogramm, das ursprünglich geschrieben wurde, in VS2005.
Muss ich eine kleine änderung machen, aber der source-code für eine Dll, hat schon verloren irgendwo.
Gibt es ein kostenloses oder preiswertes tool zum reverse Engineering der dll zurück zu C++ - code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hex-Rays decompiler ist ein großartiges Werkzeug, aber der code ist ziemlich schwer zu Lesen, und Sie haben zu verbringen eine Menge Zeit, um ein reverse Engineering des gesamten DLL.
Möchten Sie vielleicht auch, um einen Blick auf OllyDbg eine 32-bit-assembler level analysing debugger. Es wird verwendet, um zu analysieren, Binärcode in Szenarien, in denen Sie nicht über eine source-code. Es ist leicht debugger. OllyDbg ist shareware, also können Sie herunterladen & die Benutzung ist kostenlos..!!
Besuchen OllyDbg home page hier
PS: Zurück in den Tag Cracker verwendet SoftICE von NuMega für das Debuggen in eine ausführbare Datei & schnappen Sie sich eine Momentaufnahme auf die Werte der Register. SoftICE war eine erweiterte debugger. Es war auf jeden Fall das Lieblings-tool für die Kekse. Ich weiß nicht, über den gegenwärtigen Stand des Produkts. NuMega-site hatte keine Informationen darüber. Vielleicht habe ich es übersehen, aber ich konnte es nicht finden. Ich empfehle, dass Sie Ihre Hände auf einer älteren version (4.0 x) von SoftICE & Anwendung der WindowsXP patch für SoftICE. Arbeiten mit SoftICE ist so etwas wie eine "Erfahrung".
Weiter Lesen: Reversing: Secrets of Reverse Engineering von Eldad Eilam
Weiß ich nicht die genaue situation, die Sie haben, und wie viel die Funktionalität der DLL implementiert für Ihre Anwendung. Aber ich würde argumentieren, dass in den meisten Fällen wäre es besser, zu schreiben, die die fehlende DLL (basierend auf den bekannten Funktionen.
Dies ist besonders wahr, wenn Sie haben einige Unterlagen für Sie.
Versuchen, reverse Engineering für den Binärcode zu assembler, dann C++ und dann versuchen, es zu ändern, um die vorhandene Funktionalität wird in den meisten Fällen zu zeitaufwendig und vielleicht sogar unmöglich.
Wenn Ihr eine kleine änderung ist zum Bearbeiten von text oder zu überspringen einige Routinen, Sie könnte mit einem hex-editor oder einen disassembler, aber Sie werden nicht in der Lage zu sehen, die ursprünglichen C++ - code, und selbst wenn Sie ein tool finden, mit dem sich der DLL zurück in den code, alle Variablennamen wäre gegangen und es wäre ein großes Durcheinander.
Ein wenig, je nach Ihrer situation würde ich halten das Vermächtnis/binary-DLL und schreiben Sie eine wrapper-DLL, ändern und/oder fügen Sie zusätzliche Verhalten.
Die Idee ist, aggregieren die alte Funktionalität in einer neuen DLL-Datei, die importiert die alten.
Sie es zu tun haben wie Spiele-und app-Cracker tun: Verwenden Sie ein disassembler und hacken, den Assembler-code.
Kippe schalten Sie Fleisch wieder zu einem Tier und selbst wenn man das könnte, hätte man ein Totes Tier 😛
WENN es gemacht wurde .NET warum dann nicht verwenden, dotNet Reflektor.