AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Disassembler gibt's die noch

Ein Thema von p80286 · begonnen am 14. Dez 2015 · letzter Beitrag vom 16. Dez 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Disassembler gibt's die noch

  Alt 14. Dez 2015, 18:34
Vor vielen Jahren, als Programme noch klein waren und Betriebssysteme noch mit 3 Buchstaben benannt wurden, gab es einige Disassembler die für kleines Geld recht ordentliche Leistung boten. Mit rudimentären Assembler-Kenntnissen, konnte man da einigen Programmen ganz gut über die Schulter schauen.

Gibt's so etwas auch heute noch oder ist man da ohne intime Kenntnisse des Prozessors, und der verschiedenen Spezialbefehlssätze vollkommen aufgeschmissen?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: Disassembler gibt's die noch

  Alt 14. Dez 2015, 18:47
Heute bist du vermutlich mit einem Debugger besser dran. Oder anders: jeder Debugger hat einen Disassambler dabei und während der Ausführung hineingucken ist bei den heutigen Code-Größen angenehmer.

Der Gold-Standard ist IDA Pro, OllyDbg ist unter Windows beliebt und von radare hab ich positives gehört.
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Disassembler gibt's die noch

  Alt 14. Dez 2015, 19:11
X64DBG wäre noch erwähnenswert. Nicht vom Namen abschrecken lassen, er kann auch 32bit.
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#4

AW: Disassembler gibt's die noch

  Alt 14. Dez 2015, 19:43
Heute ist es die hohe Kunst, wie gut man virtualisiert ohne das es "bemerkt" wird.
Wenn dann noch ein echter echter Bus und CPU Trace von der virtuellen Umgebung möglichst in Echtzeit aufgezeichnet wird, dann kann ich anschließend beliebig oft und beliebig schnell (von Einzelschritt bis das was die Hardware hergibt) mich durch den Code arbeiten. Früher reichte oft das parsen der (D)OS Interrupts und man wusste was passiert.

Heute analysiert man zuerst die verwendeten PE-Loader(gepackt, verschlüsselt,...) und dann die verwendeten Compiler&Frameworks (.NET, Java, MFC, MCL, FMX,...) und hat dann hoffentlich in seinem Analysetool schon die passenden Plugins. Echt gute kommerzielle (kleine) Sachen in ASM oder einfachem Plain"C" gibt es heute quasi kaum noch.
(eigentlich nur bei bösem Zeug nehmen sich die Schöpfer noch die Zeit so ganz tief in die ASM Trickkiste zu greifen)

Gegen Spezialhardware mit dualported RAM oder Analysetools auf Hardwarebene kann fast kein Debugschutz bestehen. Solange die Sache in Quasi Echtzeit einer simulierten 1,5GHz Dualcore CPU läuft(real dann eben nötig Quadcore besser 4GHz) und sich aufzeichnen lässt, ist es nur eine Frage des Aufwandes es für ein bestimmtes Ziel zu analysieren.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.651 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Disassembler gibt's die noch

  Alt 14. Dez 2015, 20:27
Es gibt ja auch Dekompiler wie DeDe oder IDA, die aus Delphianwendungen gut kommentierten Assemblercode produzieren.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (15. Dez 2015 um 08:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: Disassembler gibt's die noch

  Alt 14. Dez 2015, 23:50
Ist halt die Frage, was du genau machen willst.

Für professionelle Anwendung kommt wohl ausschließlich IDA in Frage. Dafür gibt es optional von HexRays auch noch einen Decompiler, der das Assembly in C Code übersetzt. Ist aber recht teuer der Spaß.

Um mal eben reinzuschnuppern reichen OllyDbg oder x64dbg voll und ganz aus. Decompiler kenne ich dafür allerdings nicht. Kommt dann auf den Compiler deines Targets an, ob sehr viel gebrauch von neueren (spezial-)Instructions gemacht wird, oder nicht.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Disassembler gibt's die noch

  Alt 15. Dez 2015, 09:54
Bedenke auch, daß frühe reine EXE nur 100 KB hatte und jetzt eine Delphi-EXE mit nur einer TForm mit TButton und dem EventCode Beep; schon gefühlte 80 MB sind ... da muß du gleich mal viel, viel, sehr viel mehr Assemblercode überblicken, bevor du den Beep überhaupt findest.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Disassembler gibt's die noch

  Alt 15. Dez 2015, 11:26
Ist halt die Frage, was du genau machen willst.
Gute Frage, in den meisten Fällen schauen mit welchen Werten ein Programm arbeitet. Oder wie ein Zugriff realisiert wird, der "offizell" gar nicht geht. Aber das aus reiner Neugierde!

Bedenke auch, daß frühe reine EXE nur 100 KB hatte und jetzt eine Delphi-EXE mit nur einer TForm mit TButton und dem EventCode Beep; schon gefühlte 80 MB sind ... da muß du gleich mal viel, viel, sehr viel mehr Assemblercode überblicken, bevor du den Beep überhaupt findest.
Das ist, was mich abschreckt mein letzter (DISASM hieß er glaube ich) hat mir da eine enorme Menge an Arbeit abgenommen.

Früher reichte oft das parsen der (D)OS Interrupts und man wusste was passiert.
Auf der Stufe bin ich hängen geblieben.

Es gibt ja auch Dekompiler wie DeDe oder IDA, die aus Delphianwendungen gut kommentierten Assemblercode produzieren.
So richtig erschließt sich mir nicht der Unterschied zwischen Disassembler und Decompiler, aber auf den ersten Blick scheint IDA mir gut in den Kram zu passen.

Vielen Dank! mal schauen ob ich da noch durchsteige.

K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (15. Dez 2015 um 11:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Disassembler gibt's die noch

  Alt 15. Dez 2015, 11:37
Ist halt die Frage, was du genau machen willst.
Gute Frage, in den meisten Fällen schauen mit welchen Werten ein Programm arbeitet. Oder wie ein Zugriff realisiert wird, der "offizell" gar nicht geht. Aber das aus reiner Neugierde!
Verstehe nicht so genau was du da erreichen willst. Kannst du mal ein Beispiel nennen?
Habe das Gefühl, dass das heute nicht mehr relevant ist.

So richtig erschließt sich mir nicht der Unterschied zwischen Disassembler und Decompiler, aber auf den ersten Blick scheint IDA mir gut in den Kram zu passen.
Disassembler: Maschinencode => Assemblercode
Decompiler: Maschinencode/Assemblercode => (Pseudo-)Hochsprache
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.651 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Disassembler gibt's die noch

  Alt 15. Dez 2015, 12:21
Wobei der Unterschied zwischen reinem Disassembler und Decompiler fließend ist.

DeDe kann zum Beispiel keine Hochsprachenquelltexte erzeugen, bereitet den Assemblerquelltext aber auf und extrahiert Events aus Formularen einzeln usw., so dass die Struktur wieder ähnlich der des ursprünglichen Delphiprogramms ist.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz