Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

.exe in Code umwandeln?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
qbprogger



Anmeldungsdatum: 13.05.2008
Beiträge: 49
Wohnort: Kirchlinteln

BeitragVerfasst am: 01.03.2009, 16:47    Titel: .exe in Code umwandeln? Antworten mit Zitat

Hallo,

ist es möglich eine .exe Datei
wieder in Quellcode umzuwandeln?


Mfg,
qbprogger
_________________
Proggen macht Spaß!!!
happy happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 01.03.2009, 16:55    Titel: Re: .exe in Code umwandeln? Antworten mit Zitat

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

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
b3ast



Anmeldungsdatum: 27.04.2008
Beiträge: 34

BeitragVerfasst am: 01.03.2009, 23:30    Titel: Antworten mit Zitat

haha, gutes beispiel lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
qbprogger



Anmeldungsdatum: 13.05.2008
Beiträge: 49
Wohnort: Kirchlinteln

BeitragVerfasst am: 03.03.2009, 16:10    Titel: Antworten mit Zitat

Schade, dass es nicht geht aber sonst würden
ja sämtliche Programme OpenSource werden.


Mfg,
qbprogger
_________________
Proggen macht Spaß!!!
happy happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
frebas



Anmeldungsdatum: 20.06.2008
Beiträge: 245

BeitragVerfasst am: 03.03.2009, 21:21    Titel: Re: .exe in Code umwandeln? Antworten mit Zitat

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

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
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 03.03.2009, 21:47    Titel: Antworten mit Zitat

Wikipedia?!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 03.03.2009, 21:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
frebas



Anmeldungsdatum: 20.06.2008
Beiträge: 245

BeitragVerfasst am: 03.03.2009, 22:02    Titel: Antworten mit Zitat

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 happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 03.03.2009, 22:05    Titel: Antworten mit Zitat

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 durchgeknallt 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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 03.03.2009, 22:12    Titel: Antworten mit Zitat

Da scheint sich jemand auszukennen zwinkern

OllyDbg hab ich aber auch noch irgendwo lachen

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
Benutzer-Profile anzeigen Private Nachricht senden
frebas



Anmeldungsdatum: 20.06.2008
Beiträge: 245

BeitragVerfasst am: 03.03.2009, 22:17    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 03.03.2009, 22:20    Titel: Antworten mit Zitat

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 zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 03.03.2009, 23:02    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 04.03.2009, 15:16    Titel: Antworten mit Zitat

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. zwinkern 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
Benutzer-Profile anzeigen Private Nachricht senden
mukix



Anmeldungsdatum: 13.02.2010
Beiträge: 1

BeitragVerfasst am: 13.02.2010, 21:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz