Flash Bytecode Hacking - Speicher-Hack

01/13/2013 23:55 Generic_User#1
Liebe Gemeinde,

hat hier jemand eine Idee wie man elegant folgendes erreicht?

Ich möchte z. B. im Speicher des Prozesses 'plugin-container'
nach dem Wert 46f206012401a0 und ihn durch 46f206012402a1
ersetzen.

Das lässt sich zwar auch mit einem Hex-Editor anstellen, ist
aber alles andere als gefällig und schon in meinem Umfeld eine
unüberwindbare Hürde.

Nun ist es nicht so, dass ich mich nicht bereits seit Tagen nach
einer Lösung umsehen. Alles was ich finden konnte (AutoIi, CE,
dup2) scheitert exakt an der Aufgabenstellung:
Im Speicher suchen und ersetzen.

Eine Idee oder gar ein Schnipsel Code wäre sehr nett.
01/14/2013 16:36 jacky919#2
Wenn das ein Flashgame ist, kannst du es dir theoretisch runterladen, dekompilieren und dadurch die Stelle im Programm finden, die du verändern willst und dann halt die entsprechneden Bytes via HexEditor anpasssen.
01/14/2013 17:44 Generic_User#3
Quote:
Originally Posted by jacky919 View Post
Wenn das ein Flashgame ist, kannst du es dir theoretisch runterladen, dekompilieren und dadurch die Stelle im Programm finden, die du verändern willst und dann halt die entsprechneden Bytes via HexEditor anpasssen.
Huch. Geht aus meinem ersten Posting nicht hervor, dass genau das längst passiert ist? ;)
01/14/2013 17:57 jacky919#4
Nein es geht daraus nicht hervor warum du die editierte .swf oder .flv dann nicht einfach ausführst :)
01/14/2013 18:39 Generic_User#5
Quote:
Originally Posted by jacky919 View Post
Nein es geht daraus nicht hervor warum du die editierte .swf oder .flv dann nicht einfach ausführst :)
Nagut, dann muss ich Teile meines Postings wohl noch einmal übersetzen müssen.
Da geht sie dahin, meine Illusion mich deutlich ausdrücken zu können ;)

Quote:
Originally Posted by Ich selbst schrieb
[..] ist aber alles andere als gefällig und schon in meinem Umfeld eine
unüberwindbare Hürde.
Ich habe einige Cheats für Flash-Spiele selbst ertüftelt. Entweder bringe ich sie mit einem Hex-Editor zum Einsatz, oder ich schleuse bereits gepachte Versionen der Spiele mittels Fiddler in den Browser.
Aber in meinem Umfeld (Freundes- und Bekanntenkreis) käme niemand mit einer Schritt-für-Schritt-Anleitung zurecht. Daher möchte ich gern ein kleines Programm reichen, was oben erwähnte Schritte übernimmt, die ich sonst im Hex-Editor mache (Wie ich es um ursprünglichen Posting schrieb)
01/14/2013 19:26 jacky919#6
Würde deine Zielgruppe es denn wenigstens schaffen, sich das Flashspiel zu laden und es nach einem Patch mit Fiddler, wenn du sagst das geht damit, zu laden?
Die Bytes im Hexcode automatisiert zu ersetzen sollte nicht all zu schwierig sein, kommt halt auf deine Erfahrung im Umgang mit Programmiersprachen an.
01/14/2013 19:33 Generic_User#7
Quote:
Originally Posted by jacky919 View Post
Würde deine Zielgruppe es denn wenigstens schaffen, sich das Flashspiel zu laden und es nach einem Patch mit Fiddler, wenn du sagst das geht damit, zu laden?
Die Bytes im Hexcode automatisiert zu ersetzen sollte nicht all zu schwierig sein, kommt halt auf deine Erfahrung im Umgang mit Programmiersprachen an.
Zielgruppe sind einfache User, die in der Lage sind ein Programm zu starten und eben nicht mit einer Anleitung zurecht kommen.
01/14/2013 19:36 jacky919#8
Solange du nicht anstrebst Erweiterungen für FireFox etc. zu schreiben wird deine Zielgruppe aber mindestens dazu gezwungen sein das Spiel selbst runterzuladen.
01/14/2013 19:56 Generic_User#9
Quote:
Originally Posted by jacky919 View Post
Solange du nicht anstrebst Erweiterungen für FireFox etc. zu schreiben wird deine Zielgruppe aber mindestens dazu gezwungen sein das Spiel selbst runterzuladen.
Das angestrebte Programm soll lediglich die Schritte ausführen, die man sonst von Hand in einem Hex-Editor ausführt: Hex-Wert suchen und ersetzen.

Das Spiel wird die Zielgruppe wie gewohnt auf Facebook oder sonst wo aufrufen.
01/14/2013 20:04 -AmA-#10
Also noch mein kleiner Beitrag dazu...

Schreib ein Skript oder ein Tool oder was auch immer das etwa folgenden Ablauf hat:

1. Begonnen wird bei 0x0
2. Ein Byte auslesen.
3. Wenn Byte 46 ist dan Position merken.
4. Nachschauen ob die nächsten Bytes die hier sind: f2 06 01 24 01 a0
5a. Wenn nein dan 2. weiterfahren und das nächste Byte auslesen.
5b. Wenn ja dan bei der gemerkten Position mit ersetzten beginnen.

Wie so etwas geschrieben wird, wird hier in Massen erklärt.
01/14/2013 20:55 Generic_User#11
Quote:
Originally Posted by -AmA- View Post
Also noch mein kleiner Beitrag dazu...

[...] Wie so etwas geschrieben wird, wird hier in Massen erklärt.
Bitte ein Stichwort, mit dem man hier die Suche füttern kann.

Bei allem was ich vorgestern probiert habe, kam entweder nichts heraus oder es
wurde beanstandet, dass 'hex' zu kurz/allgemein sei. (Davon, dass man zwischen
den Suchanfragen auch noch mit Wartezeit bestraft wird, ganz abgesehen.)
04/21/2013 05:24 Generic_User#12
Damit ist aus diesem Thread auch wieder der übliche Forum-Schrott geworden, der bei Google auftaucht und Suchende mit Nutzlosigkeit nervt, weil sie lediglich ihre Frage wiederfinden, aber keine Lösung.

Die Suchfunktion kommt einem leider auch nicht wirklich entgegen.

Auf
"Deine Suchanfrage erzielte keine Treffer. Bitte versuche es mit anderen Suchbegriffen. "
folgt
"Entschuldigung, aber du kannst nur alle 15 Sekunden eine neue Suche starten. Du musst noch 1 Sekunden warten, bevor du eine neue Suche starten kannst."

Fantastisch!

Und die Frage nach einem Stichwort, damit man die Suche wirklich nutzen kann, war wohl
auch einfach nicht zu beantworten. Dafür weiß man jetzt, dass "-AmA-" die Lösung kennt.

Darüber können sich dann die nächsten freuen, die über eine Suchmaschine in diesem Thread landen.

Wie wäre es wenn man den Thread wegen Nutzlosigkeit ganz löscht, damit andere ihre Zeit
nicht mit ihm verschwenden?
04/21/2013 18:43 dready#13
Dafür das er dir geholfen hat verhälst du dich ziemlich unsinnig, ein einfaches, das hab ich nicht verstanden, könntest du mir ein paar Stichworte zum googlen geben wäre deutlich produktiver gewesen ...

Hier hast ein paar Stichworte
ReadProcessMemory, WriteProcessMemory,Virtualqueryex

Ruf virtualquery für den Plugincontainer auf
Schau in jeder Memoryregion des Processes die ersten paar Bytes an um zu indetifizieren ob darin eine Swf datei liegt, glaub war CFW als kürzel, glaub gab 2 einmal für packed und einmal für not packed
Wenn du es findest lad dir die gesammte Memoryregion und such nach deiner Zeichenfolge
Nimm die gefundene Adresse und überschreib die gewünschten Bytes mit writememory
04/22/2013 19:07 Master674b#14
Quote:
Originally Posted by Generic_User View Post
Bitte ein Stichwort, mit dem man hier die Suche füttern kann.

Bei allem was ich vorgestern probiert habe, kam entweder nichts heraus oder es
wurde beanstandet, dass 'hex' zu kurz/allgemein sei. (Davon, dass man zwischen
den Suchanfragen auch noch mit Wartezeit bestraft wird, ganz abgesehen.)
FindPattern
04/22/2013 20:14 mKeey#15
Wenn mir die .swf zu kommen lässt kann ich Dir einen so genannten Trainer schreiben.