aus exe datei den code herausbekommen

Übersicht BlitzBasic Allgemein

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

sbrog

BeitragMo, Mai 03, 2004 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wieso kann der Computer dann den Binärcode nur in Assembler übersetzen und nicht z.B jn blitzbasic ?

Splinner

BeitragMo, Mai 03, 2004 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
das interressiert mich auch, vllt baut der compiller ja irgend ne sperre ein...aber die müsste doch zu knakken sein....
 

Edlothiol

BeitragMo, Mai 03, 2004 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Question
 

ChristianH

BeitragMo, Mai 03, 2004 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
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. Smile

Splinner

BeitragMo, Mai 03, 2004 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
schade... aber ok
 

Master King of

BeitragMi, Mai 12, 2004 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
assembler ist die reinste programmiersprache aber der prozessor bearbeitet doch nur 0en und einsen oder? und nicht direkt den assembler code

BladeRunner

Moderator

BeitragMi, Mai 12, 2004 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Mai 13, 2004 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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. Smile


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

BeitragSa, Mai 15, 2004 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
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... Wink
B3D
MSVC++
DX9SDK

Jolinah

BeitragSa, Mai 15, 2004 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wird dann eben von den Nullen und Einsen zurück in Assembler disassembliert Wink

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).

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group