Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

debugger

Diskussion: debugger im Forum Code Kitchen, in der Kategorie Software Home; Anzeige liebe leser, ich würde gerne wissen, ob ihr einen Debugger kennt, mit dem man alles in C++ lesen kann ...

Antwort
Alt 09.01.11, 03:03   #1 (permalink)
 
Registriert seit: 09.01.11
onlyrealnapster Leistung: Facit NTK
Likes: 0
Smile debugger

Anzeige

liebe leser,

ich würde gerne wissen, ob ihr einen Debugger kennt, mit dem man alles in C++ lesen kann und nicht in Assemblersrache. Zwar kann ich schon seit einer weile programmieren, doch gibt es so einiges bei manchen programmen, wo ich gerne wissen würde, wie das Program funktioniert. Und das ganze in Assembler zu lesen finde ich etwas umständlich. Also, falls ihr ein Program kennt mit dem alles in C++ lesen kann, dann bitte gibt mir einen link. Ansonsten müsste ich weiterhin alles in assembler lesen.

MVH

onlyrealnapster



PS
ich brauche keinen Debugger um zu cracken, sondern nur um zu sehen wie alles funktioniert. Ich bin kein Cracker, sondern nur einer der etwas mehr über programme wissen will und sich innerhalb des gesetzes bewegt. Also bitte nicht misverstehen.

onlyrealnapster ist offline   Mit Zitat antworten
Alt 09.01.11, 03:08   #2 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

was du haben willst ist nicht so einfach ...

verallgemeinernd kann man sagen, dass man zwar wieder c, respektive c++ code erzeugen könnte, der auch wieder die gleiche funktion erfüllen wurde, aber höchst wahrscheinlich nicht der code ist, der ursprünglich geschrieben wurde ... und es kommt in der regel auch nichts schön lesbares dabei raus ...

bei sprachen wie c# oder java sieht das anders aus, aber bei c/c++ ... ich fürchte du wirst mit asm vorlieb nehmen müssen
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 09.01.11, 05:10   #3 (permalink)
 
Registriert seit: 05.10.05
Inliferty Leistung: 8086
Inliferty eine Nachricht über ICQ schicken
Likes: 5
Standard

Hast du vor fremde Programme zu debuggen oder selbst geschriebene Applikationen?
Das macht nämlich bezogen auf die Frage einen großen Unterschied.

MfG
Inliferty
Inliferty ist offline   Mit Zitat antworten
Alt 09.01.11, 12:03   #4 (permalink)
Senior Member
 
Benutzerbild von lookshe
 
Registriert seit: 10.03.07
lookshe Leistung: 8086
Likes: 19
Standard

Sofern es sich um Programme handelt, die in einer Sprache geschrieben wurden, welche vom Visual Studio unterstützt werden, ist es möglich sich an den Prozess zu hängen und zu debuggen. Sofern man den Quelltext oder auch nur Teile davon hat, kann VS das recht gut und man kann den Prozess debuggen. Geht sogar, wenn der Quelltext nicht mehr in der aktuellen Version des Binaries vorliegt, entsprechende Stellen werden dann einfach übersprungen (wie bei fehlenden auch). Das Binary muss dazu auch nicht auf Debug gebaut sein, allerdings ist VS dann "treffsicherer".
lookshe ist offline   Mit Zitat antworten
Alt 09.01.11, 12:37   #5 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Einer der besten sollte Hex-Rays sein:
http://www.hex-rays.com/
Allerdings hat man eben bei modernen Compilern das Problem, dass sie viele Schritte wegoptimieren.
Zudem:
1.Funktionsnamen/Variablen bleiben nicht erhalten (Kommentare sowieso nicht )
2.Reihenfolge der Funktionen muss in der Binary nicht die gleiche sein, Compiler kann zudem Inlining betreiben und damit die Aufrufe "wegoptimieren"
3. Klassenkonstrukte sind "namenlos" und können zudem sehr schlecht rekonstruiert werden (nicht umsonst wird bei C++ versucht, alles schon zur compilierzeit zu ermitteln. Afaik bleiben da kaum Informationen übrig, um überhaupt Klassen rekonstruieren zu können - von Zugriffsmodifikatoren ganz zu schweigen)
4.Schleifen wie do/while/for können teilweise nicht mehr unterschieden werden

usw.
Bei größeren Projekten wird man vielleicht sogar lesbaren Coder erhalten - der aber weit weit vom original entfernt ist
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 09.01.11, 17:09   #6 (permalink)
Themenstarter
 
Registriert seit: 09.01.11
onlyrealnapster Leistung: Facit NTK
Likes: 0
Standard

danke. Hat mir sehr wietergeholfen.


Aber was java und c# angeht, die sprachen behersche ich auch, altso könnte ich auch die bekommen? Die Debugger meine ich?
onlyrealnapster ist offline   Mit Zitat antworten
Alt 09.01.11, 19:38   #7 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

stichwort decompiler ... ansonsten ist google dein freund ...
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 10.01.11, 01:02   #8 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Zitat:
Aber was java und c# angeht, die sprachen behersche ich auch, altso könnte ich auch die bekommen? Die Debugger meine ich?
Mit
Zitat:
bei sprachen wie c# oder java sieht das anders aus, aber bei c/c++ ... ich fürchte du wirst mit asm vorlieb nehmen müssen
ist eher das Decompilieren der in Java/NET Sprachen geschriebener Anwendungen gemeint.
Hier liefern die Compiler sehr viele zusätzlichen Informationen mit (da die Sprachen z.B Reflexion / dynamischer Methoden/Variablenzugriff unterstützen - dementsprechend müssen auch die Namen irgendwo gespeichert sein. Ferner ist der Bytecode
a) frei von Altlasten
b) auf höherem Level als reiner Maschinencode
c)besitzt normalerweise pro Operation einen entsprechenden Opcode, bei denen zudem auf "Low-Level" Optimierung verzichtet wird (das übernimmt dann der Just In Time Compiler der Java/NET Virtual Machine) ).

Dadurch lassen sich die NET/JAVA Dateien sehr gut wieder decompilieren.
Und nicht etwa in C/C++/Pascal/Ada usw. Anwendungen in C#/Java decompilieren[0]

Decompiler für NET:
Reflector


[0]Um genauer zu sein: mit den üblichen Standardcompilern für diese Sprachen erzeugte ausführbare Dateien.
Randfälle gibt es natürlich auf beiden Seiten - es gibt Interpreter für C und "Binary Compiler" für Java bzw. inzwischen recht beliebt
Obfuscatoren für NET
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 11.01.11, 00:50   #9 (permalink)
 
Registriert seit: 22.10.05
farhaven Leistung: Z3
Likes: 3
Standard

Wenns in C/C++ ist, dann ist die Option -g vom gcc/clang dein Freund. Dadurch werden massenhaft Debug-Infos in die erzeugte Objektdatei gepackt, die zum Beispiel gdb lesen kann. Da kann man sich mit list zum Beispiel die Umgebung um den gerade ausgefuehrten Codeabschnitt anzeigen lassen.
farhaven ist offline   Mit Zitat antworten
Antwort

Stichworte
assembler, c++, debugger, informatik, programmieren
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » debugger
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61