Frage

Ich habe ein kleines Programm, das in VS2005 ursprünglich geschrieben wurde.

Ich brauche eine kleine Änderung zu machen, aber der Quellcode für eine der DLLs irgendwo verloren gegangen ist.

Gibt es ein kostenloses oder preiswertes Werkzeug umkehren die DLL zurück in C ++ Code Ingenieur.

War es hilfreich?

Lösung

Hex-Rays Decompiler ist ein großes Werkzeug, aber der Code wird sehr schwierig sein, zu lesen und Sie werden viel Zeit damit verbringen müssen umkehren die ganze DLL-Ingenieur.

Andere Tipps

Sie möchten vielleicht auch auf einen Blick haben OllyDbg , die ein Assembler-Ebene analysieren Debugger 32-Bit ist. Es wird verwendet, Binärcode in Szenarien zu analysieren, wo Sie keinen Quellcode haben. Es ist leicht Debugger. OllyDbg ist ein Shareware, so können Sie & es kostenlos nutzen herunterladen .. !!

Besuchen Sie OllyDbg ist Startseite hier

PS: Zurück in den Tag-Cracker verwendet SoftICE aus NuMega zum Debuggen in ein ausführbares & einen Schnappschuß zu den Werten der Register greifen. SoftICE war eine erweiterte Debugger. Es war auf jeden Fall das Lieblingswerkzeug für die Cracker. Ich weiß nicht, über den aktuellen Zustand des Produkts. NuMega Website hatte keine Informationen über sie. Vielleicht habe ich es übersehen, aber ich konnte es nicht finden. Ich empfehle, dass Sie Ihre Hände auf einer Legacy-Version (4.0x) von SoftICE zu bekommen und WindowsXP-Patch für SoftICE anzuwenden. Arbeiten mit SoftICE ist so etwas wie eine „Erfahrung“.

Weiter lesen: Umkehren: Secrets of Reverse Engineering von Eldad Eilam

Ich weiß nicht, die genaue Situation, die Sie haben und wie viel die Funktionalität der DLL implementiert für Ihre Anwendung. Aber ich würde behaupten, dass in den meisten Fällen wäre es besser, die fehlende DLL auf der bekannte Funktionalität auf Basis neu zu schreiben.

Dies gilt insbesondere, wenn Sie dafür eine Dokumentation haben.

Der Versuch, den Binärcode zu Assembler Reverse Engineering, dann auf C ++ und dann versuchen, es zu ändern, die vorhandene Funktionalität zu schaffen, in den meisten Fällen zu der Zeit sein wird, aufwendig und vielleicht sogar unmöglich.

Wenn Ihre kleine Änderung ist etwas Text zu bearbeiten oder einige Routinen zu überspringen, können Sie einen Hex-Editor oder einen Disassembler verwenden könnten, aber Sie werden nicht in der Lage sein, den ursprünglichen C ++ Code zu sehen, und selbst wenn Sie ein Werkzeug finden, dass die DLL zurück in Code verwandelt, alle Variablennamen verschwunden sein würde, und es wäre ein großes Durcheinander sein.

Ein wenig abhängig von Ihrer Situation würde ich das Erbe / binary DLL halten, wie sie ist und eine Wrapper-DLL schreiben, ändern und / oder zusätzliche Verhalten hinzuzufügen.

Die Idee ist, die alte Funktionalität in einem neuen DLL zu aggregieren, die die alten importiert.

Sie haben es wie Spiel und App-Cracker zu tun: a. Disassembler verwenden und den Assembler-Code hacken

Sie können nicht Fleisch umdrehen, an ein Tier und selbst wenn Sie könnten Sie ein totes Tier würde: P

Wenn es in .NET getan wurde, warum dann nicht den dotNet Reflektor verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top