Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 01.03.2009, 16:47 Titel: .exe in Code umwandeln? |
|
|
Hallo,
ist es möglich eine .exe Datei
wieder in Quellcode umzuwandeln?
Mfg,
qbprogger _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 01.03.2009, 16:55 Titel: Re: .exe in Code umwandeln? |
|
|
Hallo!
qbprogger hat Folgendes geschrieben: | ist es möglich eine .exe Datei wieder in Quellcode umzuwandeln? |
Das ist in der Regel etwa so machbar wie die Wiederherstellung einer lebensfähigen Kuh aus einer Kofferraumladung voll Cheeseburger.
Man kann EXE-Dateien disassemblieren, also die binär kodierte Maschinensprache in kaum lesbarere *ZumWinkenBenutztenZaunpfahlWiederEinpack* Mnemonics umwandeln, aber an den Hochsprachenquelltext kommt man nicht mehr dran.
Es gab Programmierwerkzeuge, die den Quelltext nur in etwas abgewandelter Form verschlüsselt an einen Interpreter angehängt haben und so zur EXE-Datei kamen. In solchen Ausnahmefällen kann man einen Quelltext, wenn auch nicht genau in der Ursprungsform, regenerieren. Bei QB ist das meines Wissens aber nicht der Fall.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
b3ast
Anmeldungsdatum: 27.04.2008 Beiträge: 34
|
Verfasst am: 01.03.2009, 23:30 Titel: |
|
|
haha, gutes beispiel  |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 03.03.2009, 16:10 Titel: |
|
|
Schade, dass es nicht geht aber sonst würden
ja sämtliche Programme OpenSource werden.
Mfg,
qbprogger _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 03.03.2009, 21:21 Titel: Re: .exe in Code umwandeln? |
|
|
Sebastian hat Folgendes geschrieben: | Hallo!
qbprogger hat Folgendes geschrieben: | ist es möglich eine .exe Datei wieder in Quellcode umzuwandeln? |
Das ist in der Regel etwa so machbar wie die Wiederherstellung einer lebensfähigen Kuh aus einer Kofferraumladung voll Cheeseburger.
Man kann EXE-Dateien disassemblieren, also die binär kodierte Maschinensprache in kaum lesbarere *ZumWinkenBenutztenZaunpfahlWiederEinpack* Mnemonics umwandeln, aber an den Hochsprachenquelltext kommt man nicht mehr dran.
Es gab Programmierwerkzeuge, die den Quelltext nur in etwas abgewandelter Form verschlüsselt an einen Interpreter angehängt haben und so zur EXE-Datei kamen. In solchen Ausnahmefällen kann man einen Quelltext, wenn auch nicht genau in der Ursprungsform, regenerieren. Bei QB ist das meines Wissens aber nicht der Fall.
Viele Grüße!
Sebastian |
Werden so kopierschutzmaßnahmen bei PC-Programmen entfernt? (Cracks) |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 03.03.2009, 21:47 Titel: |
|
|
Wikipedia?! |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 03.03.2009, 21:53 Titel: |
|
|
Ja, die disassemblieren die Programme/Programmteile und suchen nach bestimmten Mustern. Da gibt es auch Foren dazu und die helfen dann auch das zu lernen, naja, wer's braucht... |
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 03.03.2009, 22:02 Titel: |
|
|
MOD hat Folgendes geschrieben: | Ja, die disassemblieren die Programme/Programmteile und suchen nach bestimmten Mustern. Da gibt es auch Foren dazu und die helfen dann auch das zu lernen, naja, wer's braucht... |
Ich möchte das wirklich nicht lernen  |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 03.03.2009, 22:05 Titel: |
|
|
Disassemblieren ist bei solchen Dingen meist schonmal der erste Schritt in die richtige Richtung. Man erkennt ggf. erstmal gröbere Auffälligkeiten, bspw. irgendwelche EXE-Packer, mit welcher Sprache wahrscheinlich gearbeitet wurde, etc. Für weitere Schritte ist aber ein Debugger i.d.R. unerlässlich, solange du nicht alles mit Papier und Bleistift durchgehen willst. Dort kannst du alles, was das Programm macht auf unterster Ebene inspizieren, jederzeit anhalten, in den Programmablauf eingreifen, sehen, was das Programm an Handles offenhält, Programmstruktur erkennen.
Hat mit dann die kritischen Stellen raus, wird je nach Kopierschutz passend gepatcht, d.h. Teile des Programmcode auf unterster Ebene "ausgetauscht".
Wenn du dich für den Assembler-Code interessiert, schau dir einfach mal einen Disassembler wie IDA oder Debugger (z.B. OllyDbg) an.
Das ganze hat durchaus wirklich praktische Anwendungsmöglichkeiten fernab von Cracks. Die Virendefinitionen von Scannern werden beispielsweise aktualisiert, indem Viren/Würmer in freier Wildbahn mit Disassembler und Debugger seziert, auf die charakteristischen Stellen reduziert und in die Definitionsdatei eingebaut werden. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 03.03.2009, 22:12 Titel: |
|
|
Da scheint sich jemand auszukennen
OllyDbg hab ich aber auch noch irgendwo
Apropos Patch, ich hab mich schon immer gefragt, wie sowas programmiertechnisch aussieht...und ob das in FB geht (ich nehme an, ganz bestimmt) |
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 03.03.2009, 22:17 Titel: |
|
|
In FB? Dann müsstest du den Assembler coder wieder in FB convertieren und das geht ncht wenn das in einer anderen Sprache geschrieben wurde, selbt bei FB Programmen wäre das schwer. Aber man könnte in den FBC Source code gucken. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 03.03.2009, 22:20 Titel: |
|
|
Ich weiß zwar nicht, wie das wirklich funktioniert, aber ich dachte in etwa so:
Rausfinden, welcher Teil getauscht werden soll (so wie es Mao beschrieben hat) und dann vielleicht binär öffnen und die entsprechenden Teile austauschen oder Inline-ASM.
Hier gibt's doch bestimmt jemanden, der sich da auskennt  |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 03.03.2009, 23:02 Titel: |
|
|
Je nachdem, für was man einen Patch erstellen will, ist dies entweder einfacher oder schwieriger. Wenn man nur bestimmte Variablenwerte austauschen will, Werte überschreiben will, Programmabschnitte überspringen will, etc. ist das relativ einfach.
Wie Mao bereits gesagt hat verwendet man zuerst einmal einen Debugger (wie z.B. Olly), um die gewünschte Stelle zu finden und kann mit Olly den Code direkt vor der Ausführung ändern, Flags ändern, ...
Komplizierter wirds, wenn die EXE mit irgendwelchen Packern gepackt, verschlüsselt, oder mit sonstigen Schutzmaßnahmen zusätzlich versehen ist (auf das möchte ich jetzt nicht im Detail eingehen...). Da gibts aber auch wiederum "einfachere" und aber auch "extrem komplizierte".
Einfach gesagt: Man kann das Verändern eines Programms zwar massiv erschweren, aber unmöglich ist es doch nie. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 04.03.2009, 15:16 Titel: |
|
|
Um offtopic zu werden und trotzdem deine Frage zu beantworten @MOD:
Prinzipiell liegst du mit der Vorgehensweise wie von dir beschrieben schon total richtig. Nachdem du weißt, was geändert werden muss, überlegst du, wie geändert werden kann. Du hast i.d.R. nicht mehr Platz, als der existierende Code belegt hat (du kannst allenfalls Platz des existierenden Codes als quasi ungültig bzw. einfach nichts machend überschreiben, falls du weniger Platz brauchst) oder nur mit Trickserei oder viel Aufwand (Adressen innerhalb des Programms müssen ggf. neu berechnet werden).
Wenn du einen Patch schreibst und du weißt schon, was wie geändert werden soll notierst du dir die Offsets innerhalb der Datei, lässt deinen neu geschriebenen Code assemblieren und hast dann das Fleisch für den Cheeseburger, wie es Sebastian genannt hat. Anschließend ist es auch in FB oder auch QB ohne weiteres möglich die betreffenden Stellen binär zu überschreiben.
@frebas:
Reverse-Engineering kannst du eigtl. in jeder Sprache betreiben, auch wenn die ursprüngliche eine ganz andere war. D.h. wenn du dir die Mühe machen willst kannst du einen compilierten C++-Code genauso disassemblieren und in einen funktionsmäßig identischen FB-Code "zurückentwickeln". Manche Sprachen machens dir nur leichter als andere, was verständliches herauszubekommen, da sie auf virtuellen Maschinen laufen, die i.d.R. einiges mehr können als ein typischer Prozessor (z.B. die CLI von .Net oder die JVM von Java) und damit auch Hochsprachen-näher sind. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
mukix
Anmeldungsdatum: 13.02.2010 Beiträge: 1
|
Verfasst am: 13.02.2010, 21:11 Titel: |
|
|
Hallo alle zusammen
Kann mir jemand mit Ollydbg einwenig helfen?
Ich möchte eine exe verändern ,verstehe das ganze aber nicht so richtig.
An der installation möchte ich nur die bestätigung zum fortfahren der installation verändern, so das das OK drücken übersprungen wird.
Könnte mir da jemand bitte behilflich sein.
Vielen dank im voraus
MFG Muki |
|
Nach oben |
|
 |
|