![]() |
Disassembler gibt's die noch
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 |
AW: Disassembler gibt's die noch
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 ![]() ![]() ![]() |
AW: Disassembler gibt's die noch
![]() |
AW: Disassembler gibt's die noch
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. |
AW: Disassembler gibt's die noch
Es gibt ja auch Dekompiler wie DeDe oder IDA, die aus Delphianwendungen gut kommentierten Assemblercode produzieren.
|
AW: Disassembler gibt's die noch
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. |
AW: Disassembler gibt's die noch
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
Delphi-Quellcode:
schon gefühlte 80 MB sind ... da muß du gleich mal viel, viel, sehr viel mehr Assemblercode überblicken, bevor du den Beep überhaupt findest. :stupid:
Beep;
|
AW: Disassembler gibt's die noch
Zitat:
Zitat:
Zitat:
Zitat:
Vielen Dank! mal schauen ob ich da noch durchsteige. K-H |
AW: Disassembler gibt's die noch
Zitat:
Habe das Gefühl, dass das heute nicht mehr relevant ist. Zitat:
Decompiler: Maschinencode/Assemblercode => (Pseudo-)Hochsprache |
AW: Disassembler gibt's die noch
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. |
AW: Disassembler gibt's die noch
Zitat:
Gruß K-H |
AW: Disassembler gibt's die noch
War das zufällig ein altes CAD-Programm?
|
AW: Disassembler gibt's die noch
..."Habe das Gefühl, dass das heute nicht mehr relevant ist."...
Sowas ist heute wie früher oft nur relevant, wenn man Sachen wissen will, die man nicht für Geld kaufen kann. Gute (böse) Beispiele sind Analysen für Programme, welche offline irgendwelche symetrische Verschlüsselungen benutzen. Der Key ist als irgendwo "im System/Programm"... da ist es oft nur eine Frage des Aufwandes an diesen heran zukommen. Ansonsten können es auch Algos oder Funktionsaufrufe sein, welche einen Interessieren. Gerne benutzt, um in eigentlich revisionssicherer Software doch Eingaben oder Änderungen nachträglich durchzuführen, welche nicht im TransaktionsLog erscheinen oder dort wieder verschwinden. Schnödes Kopierschutz umgehen sehe ich nicht als lohnendes Ziel, denn da kann man für Geld es ja kaufen und kommt eigentlich immer billiger wie bei Gegenrechnung der zu investierenden Zeit. |
AW: Disassembler gibt's die noch
Zitat:
Ich hatte nur das Gefühl (oder so habe ich es verstanden), dass p80286 sich quasi Programmier-"Tipps"/Tricks aus dem Assemblercode anderer Programme holen will. Und das lohnt heutzutage in meinen Augen nicht mehr. Wenn es um Reverse Engineering von Algorithmen, Cracking o.ä. geht dann geht es ohne solche Programme natürlich auch heute nicht. Wegen der Sache mit dem Kopierschutz umgehen: Wenn der Hersteller des Programms sich nicht beide Beine rausgerissen hat für seinen Kopierschutz/Lizenzabfrage dann lohnt das für jmd mit etwas Erfahrung in diesem Bereich auf jeden Fall - Vorausgesetzt natürlich es geht nicht um ein 50€ Programm. Aber bei Software die mehrere hundert oder tausend Euro kostet ist man dann am Ende doch billiger dran wenn man die Software innerhalb von ein paar Tagen crackt. (Das soll jetzt keine Motivation und erst recht kein Aufruf sein so etwas zu tun!). |
AW: Disassembler gibt's die noch
Zitat:
Da hatte ich spaßeshalber mal etwas herumprobiert. ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz