2010-12-06 15 views
3

Ich bin in C#/Java, und ich kenne C und C++ ziemlich gut. Ich möchte jedoch tiefer graben und mehr Bare-Metal-Sachen lernen. Zum Beispiel kann ein einfaches Konsolenprogramm in C++:Start Executable Hacking/Decompiling/Debugging

int main() 
{ 
    char *ptr = "helloworld"; 
    return 1; 
} 

Ich öffnete es in Visual Studio mit dem Debugger (nach der PDB-Datei zu löschen) durch den Code in der Montage zu treten. Ich benutze auch HxD Hex-Editor, um die Binärdatei zu betrachten.

Offensichtlich bin ich weit davon entfernt zu verstehen, was vor sich geht. Ich möchte lernen, wie ich Code nachverfolgen kann, während er für eine Binärdatei ausgeführt wird, für die ich nicht die Quelle habe (wenn möglich), oder einfach so viel über dieses Thema lernen möchte wie möglich. Ich verstehe Step-Through-Debugging mit Source, wie ich es jeden Tag bei der Arbeit benutze, aber ohne es bin ich hilflos.

Gibt es ein "Ground Up" -Tutorial für diese Art von Sache? Welche Tools/Komplettlösungen können Sie empfehlen?

Vielen Dank.

Antwort

4

Wenn Sie einen Blick auf Ollydbg tiefer gehen zu nehmen und einige Umkehren/Knacken Tutorien .. Das wird sicher tief nehmen :) Und Sie werden lernen, wie Zeug funktioniert :) Reverse Engineering Team ein guter Ausgangspunkt ist .. Jede Suchmaschine wird Ihnen viele Sachen mit den richtigen Schlüsselwörtern geben .. :)

2

Sie müssen die Montage mindestens verstehen. Ich würde übt einige (etwas trivial) Programme schreiben, um ein Gespür für den OP-Codes zu gewinnen, registrieren, Stack-Nutzung, usw.

http://en.wikibooks.org/wiki/X86_Assembly

+1

Die Intel-Referenzhandbücher sind auch sehr nützlich. Und OllyDbg 2 verfügt über eine integrierte Mini-Assembler-Dokumentation, mit der Sie schnell Informationen über Ihren ausgewählten Befehl erhalten. – CodesInChaos

2

Bücher:

  1. über Assembler - auf Ihrem eigener Geschmack;
  2. Einige Bücher über das OS (Jeffrey Richter, Helen Custer, Matt Pietrek sind immer noch?)
  3. "Kunst der Computerprogrammierung" von Knuth (fragen Sie nicht, warum).
  4. Intel/AMD-Dokumentation über ihre Procs (oder eine, die gehen Sie zu hacken?)

Tools/Soft:

  1. Soft Ice.
  2. IDA Pro.
  3. HEX-Editor (Sie sagten, Sie haben bereits eine).
  4. DDK (jetzt heißt es WDK - Windows Driver Kit).
  5. So viele Compiler SDKs wie Sie können.

Folgen Sie this guy.

Ich hoffe, dass niemand ernsthaft behandeln diese Frage und diese Antwort wird :)

+0

Danke ... obwohl ich nicht sicher bin, was Sie mit dieser letzten Aussage meinen. – Trust

+0

@Trust Ich kam vor 6 Jahren nach RE und war sehr begeistert davon ... Ich habe die Werkzeuge aufgelistet, die ich benutzt habe. Ich habe meine letzte Aussage aktualisiert, um nur auf meine Antwort zu verweisen, sorry :) Der entscheidende Punkt ist, dass es ein sehr langer Weg ist. "Hacking" hat seinen Wow-Effekt, aber es ist eine sehr harte Arbeit ... – khachik

+0

Ich hätte das Wort "hacken" nicht verwenden sollen, weil es leicht fälschlicherweise als "knacken" gedeutet wird - was ich nicht möchte . Ihre Antwort ist jedoch hilfreich. – Trust

2

Ich weiß nicht, warum niemand Lenas Tutorials auf Reverse Engineering erwähnt hat.
Ich persönlich fand sie sehr hilfreich.Sie können sie hier finden www.tuts4you.com
Aber Sie müssen einige grundlegende Montage wie (JMP usw., Register) zu verstehen, und ich brauche nicht zu erwähnen, ein faires Verständnis der Programmierung (Ich bin sicher, Sie haben es)
Auch gibt es eine Menge Crackme, an denen Sie arbeiten können, um sich zu verbessern.