aus exe datei den code herausbekommen
Übersicht

![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber wieso kann der Computer dann den Binärcode nur in Assembler übersetzen und nicht z.B jn blitzbasic ? | ||
![]() |
Splinner |
![]() Antworten mit Zitat ![]() |
---|---|---|
das interressiert mich auch, vllt baut der compiller ja irgend ne sperre ein...aber die müsste doch zu knakken sein.... | ||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ganz einfach, weil Assembler eigentlich genau das gleiche ist wie Maschinencode. Um ein Programm zu disassemblieren, muss er eigentlich nur die Maschinenbefehle durchgehen und ihre Übersetzung hinschreiben. Sprachen wie BB sind jedoch viel zu kompliziert. Wenn der "Discompiler" z.B. einen Sprung fände, wüsste er nicht ob dieser Sprung zu einer Whileschleife, einer If - Abfrage oder was weiß ich was noch allem gehört. Maschinenbefehle sind nicht so aufgebaut "If blabla Then blabla", sondern man kann mit ihnen zum Beispiel Speicher verschieben, an andere Stellen springen (wenn ein bestimmtes Flag vorher gesetzt wurde), zwei Zahlen addieren und das Ergebnis wo anders speichern etc. Jetzt verstanden ![]() |
||
ChristianH |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es gibt Delphi DeCompiler, das klappt aber auch nur wenn die exe nicht komprimiert ist. Also, komprimiert immer schön eure exe Dateien z.b. mit upx, bevor ihr sie weitergebt. ![]() |
||
![]() |
Splinner |
![]() Antworten mit Zitat ![]() |
---|---|---|
schade... aber ok | ||
Master King of |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
assembler ist die reinste programmiersprache aber der prozessor bearbeitet doch nur 0en und einsen oder? und nicht direkt den assembler code | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um genau zu sein (oder zumindest genauer) Wird nicht bitweise sondern Byteweise eingelesen (und bei 16-bittern 32bittern etc. dementsprechend mehr)
Kenne Assembler noch von alten 8-bittern, da lief es dann zB so: Code: [AUSKLAPPEN] $a9 $01
Der Prozessor liest das erste Byte ein (a9). Dies ist der Befehl LDA (load Accu), um genau zu sein in der Form, dass ein Byte eingelesen werden soll, welches folgt. Also lädt der Prozessor den Akku mit $01. .... und so hangelt sich der Prozessor durch einen Wust von Befehlsbytes kombiniert mit (unterschiedlich vielen) Datenbytes. Das ist (s.o.) auch der Grund weshalb eine Rückübersetzung nur bedingt möglich ist. Kann sein dass moderne Prozessoren etwas anders arbeiten (Trennung Befehlscode/Datencode oder so), aber das Grundprinzip ist immer das selbe. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Xception |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ganxta hat Folgendes geschrieben: Es gibt Delphi DeCompiler, das klappt aber auch nur wenn die exe nicht komprimiert ist. Also, komprimiert immer schön eure exe Dateien z.b. mit upx, bevor ihr sie weitergebt.
![]() Es gibt keine Delphi Decompiler. Die Programme die du meinst übersetzen auch nur nach Assembler. Nur wenn man VCL verwendet, und das macht man ja wohl als Delphi Programmierer, dann kann man die original Fenster und Dialoge "dekompilieren". Aber das wars dann auch. Java dagegen kann man fast perfekt "dekompilieren". |
||
Xception
Gamedesign & more |
![]() |
ChrisAttack |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber man kann mit dem hexeditor eine passwortabfrage oder so umgehen indem man die exe verändert. wie das genau geht möcht ich jetzt aber nicht sagen... ![]() |
||
B3D
MSVC++ DX9SDK |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es wird dann eben von den Nullen und Einsen zurück in Assembler disassembliert ![]() Du fragst dich wie das funktionieren kann? Ganz einfach, das Programm disassembliert sich ja nicht selbst sondern ein anderes dafür entworfenes Programm macht diese Arbeit, sogenannte Disassembler. Wandelt dann halt die Prozessor Befehle die aus Nullen und Einsen bestehen wieder in Wörter um (ASM). |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group