Beiträge von ProfEich

    *Idee aus anderem Forum klau >D* *evil Dieb is*


    Und so gehts:


    1. Google Bilder suche öffnen
    2. Zwischenablage reinkopieren (nicht schummeln ; )
    3. Erstes Bild, dass angezeigt wird hier posten
    4. Dasselbe nochmal nur diesmal nicht mit der Zwischenablage, sondern mit dem Nick hier im Forum.



    Zwischenablage war leider grade nur Schrott drin, so dass er nichts gefunden hat, aber bei ProfEich findet man:


    [Blockierte Grafik: http://www.greenville.edu/publications/record/spring-99/images/profeich.jpg]


    o-O"

    PC Texthacking-Tutorial IO


    1. Einführung
    PC Texthacking-Tutorial 10 (Binär für 2 ;)). Dieses Tutorial beschäftigt sich mit einem
    wunderschönen (*hust**röchel*) Quiz-Spiel welches ich in ein paar Minuten herbeigezaubert
    habe. Auch in diesem Tutorial wollen wir versuchen, dass Spiel auf Deutsch zu übersetzen
    und ein paar eigene Fragen einzufügen.


    Bevor du dieses Tutorial ließt, solltest du zunächst das erste Tutorial lesen um ein paar
    Grundlegende Dinge über OllyDbg zu erfahren. Denn auch in diesem Tutorial werden wir
    es benutzen. Assembler wird in diesem Tutorial schon ein wenig wichtiger. Aber immernoch
    nicht 100%ig.


    Hier ist also unser Testprojekt für dieses mal:
    http://www.devil-studios.de/profeich/pchdemo/tut2.zip


    Du kannst es ruhig mal ausprobieren. Es hat viele tolle Features. Massig Fragen und ein
    wunderschönes Design. (Man bemerke diese Ironie). Jedenfalls ist es Englisch und wir
    möchten es gerne Deutsch haben. Auf dem Weg dahin gleich noch ein paar eigene Fragen
    einfügen.



    2. Let's go
    Jetzt wo ich anfange zu schreiben, glaube ich schon bald, dass dieses Tutorial einfacher wird
    als das vorherige. Naja. Nicht wirklich - aber wir werdens sehen!
    Nach dem ersten Blick auf die Tutorial2.exe denkt man sich sofort, man könnte bestimmt was
    mit dem Resource Hacker machen. Also probieren wir das doch direkt mal aus. Öffnen wir doch
    einfach mal den Resource Hacker und öffnen damit die EXE Datei.


    Aber was ist das? Das Dialog ist total unbeschriftet. Nur ein paar Standarttexte, die
    scheinbar von Anfang an, seit dem erstellen, da waren.
    Hier lässt sich also scheinbar nichts machen.


    Öffnen wir die EXE Datei also mit OllyDbg und suchen mal nach Text Strings ("All refereced text strings").
    Aber auch hier sieht es nicht wirklich so aus, als hätten wir irgendwo Texte. Nur die oberen drei
    Zeilen haben wirklich eine individuelle Bedeutung für das Projekt. "rb", "language.dat"! Kommt uns irgendwo her
    bekannt vor, oder? Vielleicht aus C++:


    Code
    fopen( "language.dat", "rb" );



    Und siehe da! Da ist wirklcih eine language.dat in dem Verzeichnis (gut, die ist uns auch schon eher aufgefallen :winking_face: ).
    Davon machen wir uns erstmal eine Sicherheitskopie. Nennt sie meinetwegen "Copy of language.dat".


    Und wie man aus dem Namen nicht hätte erraten können, finden wir tatsächlich die Sprache in der Datei wieder.
    Das sehen wir, wenn wir es mit Notepad/Editor öffnen oder einem anderen Texteditor.
    Es sieht zwar ein wenig eigenartig aus, hat aber dennoch eine Bedeutung.
    Nach kürzerer Zeit Analysieren, bemerken wir, dass ein einziges eigenartiges Zeichen (0xFF) die einzelnen
    Textabschnitte voneinander teilt.
    So ist es kein Problem Textlängen zu variieren und die Texte zu bearbeiten.


    Die ersten beiden Textabschnitte "LANG" und "1471895" sagen uns derzeit noch nichts, also werden wir auch die Finger
    davon lassen. Probieren wirs einfach mal aus und ersetzen den
    Abschnitt "quiz master 2004" durch "Quiz Master 2004 - Deutsch -". Dann nur noch speichern und das Spiel starten. :smiling_face:



    WTF! Was will der von uns?
    Die language.dat scheint kaputt zu sein? Von wegen auch <_<. Wir sollen ein Spiel reinstallieren, was nichtmal ein
    Installprogramm hatte. Toll.. Aber so leicht geben wir nicht auf.




    3. OllyDbg hilft weiter


    Öffnen wir die EXE Datei also wieder mit OllyDbg und lassen uns wieder alle Texte anzeigen, die in der
    Datei vorkommen. Hmm.. Die Fehlermeldung von eben ist nicht in der Liste. Irgendwo scheint diese Fehlermeldung
    versteckt zu sein.
    Man könnte nun die ganze EXE Datei durchsuchen, würde aber sicher auch nicht fündig werden.
    Was tut man also?
    Nun, wir wissen, dass eine MessageBox beim Programmstart erscheinen wird. Diese MessageBox beinhaltet den Fehler.


    Man müsste also das Programm anhalten können, kurz bevor die Fehlermeldung erscheint. Und ratet, genau das tun
    wir jetzt!
    Macht ein Rechtsklick in das CPU Fenster (da wo der Assembler Code steht). Klickt auf "Search for" und
    dann auf "Name (label) in current module".
    Es öffnet sich ein Fenster mit ganz vielen Funktionsnamen, die wir ggnf. aus der WinAPI kennen. Das sind alle
    Funktionen die über DLLs in das Programm importiert wurden. Wenn wir ein wenig nach unten scrollen sehen wir
    auch einen Eintrag der etwa so heißt:


    Code
    004070E8  .rdata  Import  USER32.MessageBoxA


    MessageBox - da ist sie! Markiert die Zeile mit der linken Maustaste und klickt dann mit der Rechten drauf.
    "Set breakpoint on every reference".
    Was tut das nun? Jedes mal, bevor die Funktion MessageBoxA nun aufgerufen wird, stoppt das Programm. Somit
    haben wir die Gelegenheit den Code an dieser Stelle zu analysieren. Und genau das brauchen wir doch, oder?
    Sobald das Programm die Fehlermeldung ausgibt, möchten wir es anhalten um dort den Quellcode zu analysieren.


    Nun drücken wir auf den Play-Knopf. Das CPU Fenster springt an eine andere Stelle und unten Rechts steht
    auf gelbem Untergruund "Paused".
    Und in der markierten Zeile steht "MessageBoxA" am Ende. Perfekt.



    3.1 Breakpoints


    Wir haben grade einen Breakpoint festgelegt. Was ist das jetzt genau und wofür haben wir das gemacht?
    Beim starten des Programmes wird ja der komplette Assembler Code durchlaufen, den wir vor uns sehen können
    und noch viel mehr in irgendwelchen anderen Dateien (DLLs). Man kann dem Debugger (ollyDbg) nun sagen,
    dass er in einer bestimmten Zeile dieses Assembler Codes eine Pause machen soll, wenn er diese erreicht.
    Somit haben wir die Möglichkeit den Assembler Quellcode an dieser Stelle genauer zu analysieren. Zum
    Beispiel kann man den Assemblercode dann Zeilenweise ablaufen lassen und genau nachvollziehen, was in
    welcher Zeile passiert.
    Wofür haben wir nun einen Breakpoint gesetzt? Bevor diese Fehlermeldung am Anfang erscheint wird nun
    eine Pause gemacht und somit ist es möglich für uns genauer zu analysieren was davor passierte. Warum
    erscheint dieser Fehler? Können wir die Fehlermeldung umgehen? Usw.



    4. Die einfache Variante


    Es gibt nun zwei Varianten bez. dieser Fehlermeldung. Die eine Variante ist es, die Fehlermeldung einfach zu
    umgehen und die andere Variante währe es den Quellcode zu analysieren und rauszufinden warum dieser Fehler
    überhaupt erscheint.


    Wir möchten zunächst die einfachere Variante ausprobieren. Scrollt soweit nach oben, bis ihr den Assembler-Befehl
    findet, der mit J anfängt. Die Zeile sollte wie folgt aussehen:


    Code
    00401458 .v75 36     JNZ SHORT Tutorial.00401490



    Jetzt müssen wir die ersten Assembler Befehle kennenlernen. JNZ. Das J steht für Jump. Das NZ ist eine Bedingung.
    Er soll den Jump nur machen, wenn der Flag Z gesetzt ist. Was Flag Z ist brauchen wir jetzt noch nicht zu wissen.
    Jump bedeutet, dass er in eine andere "Zeile" des Assembler-Codes springt. Also an eine andere Speicherstelle.


    JNZ steht für "Jump if Not Zero"


    Jedenfalls springt er über diese MessageBox nur hinaus, wenn eine bestimmte Bedingung erfüllt ist. Wir überfliegen
    das ganze jetzt so, dass wir sagen, er springt IMMER über diese MessageBox hinweg.


    Zunächst müssen wir das Programm aber wieder an den Anfang setzen, weil wir es nicht rückwärts
    abspielen können. Erstmal merken wir uns nun die gefundene Stelle. Dazu markieren wir die Zeile
    und machen einen Rechtsklick drauf und wählen "Bookmark" -> "Insert bookmark 0".
    Drückt jetzt auf den Doppelpfeil nach links, direkt neben dem Öffnen-Knopf in der Toolbar.
    Es sollte sich eine Frage öffnen, die wir einfach mit JA.


    Jetzt irgendwo einen Rechtsklick machen und auf "Bookmark" -> "Go to bookmark 0". Schon sind wir
    wieder an der Stelle von vorhin.


    Jetzt markieren wir diese Zeile und drücken die Leertaste (oder Rechtsklick->Assemble). Wir ändern
    die Zeile jetzt auf:

    Code
    JMP SHORT Tutorial.00401490


    Also ändern wir nur das NZ zu einem MP. JMP ist die Abkürzung für "JuMP". Also soll er an eine
    andere Stelle in der EXE Datei springen.


    Der Unterschied zwischen JMP und JNZ liegt daran, dass beim JMP-Befehl IMMER ein Sprung in eine andere
    Zeile stattfindet. Beim JNZ-Befehl nur, wenn die oben genannte Bedingung erfüllt wird.


    Nun können wir das Programm testen mit dem "Play"-Knopf.
    Was nun? Nichts passierte? Doch, keine Sorge! Minimiert OllyDbg mal. Im Hintergrund hat sich das Spiel versteckt.


    Es hat funktioniert. Und der Titel hat sich sogar auch geändert. So wie wir es wollten. Antwortet doch mal :smiling_face:



    Huch! Was nun? OllyDbg hat sich wieder gemeldet. Öffnet es mal wieder. Das Programm ist pausiert. Doch warum?


    Wir errinern uns an etwas was wir vorhin getan haben? Einen "Breakpoint" an jede Stelle gesetzt, wo eine
    MessageBox aufgerufen wird? Klickt oben mal auf den Knopf mit dem "B" (türkiser Hintergrund).


    Für jeden Eintrag der in dieser Liste erscheint macht ihr nun folgendes:
    Ihr markiert ihn mit der linken Maustaste. Mit der Rechten öffnet ihr das Menü in dem ihr "Remove" auswählt.
    Jetzt drückt wieder auf "Play" und minimiert OllyDbg.
    Besser! Jetzt bleibt das Programm nicht ständig hängen.


    Zurück zum OllyDbg. Das übliche Speicherverfahren. Rechtsklick auf den Assembler Code im CPU Fenster,
    "Copy to executable" "All modifications", etc.
    Speichern unter "Tutorial2b.exe".


    Nun lasst uns OllyDbg schließen und das Spiel starten :smiling_face:
    Es klappt, endlich können wir das Spiel übersetzen.


    Den Rest bekommt man durch logisches denken raus. Die 7 nach dem "the answer was wrong :(" bedeutet
    scheinbar die Anzahl der Fragen.




    Für die nächsten Schritte bräuchte man nun Assembler Kenntnisse. Und ich denke, wer Assembler kann,
    kennt sich auch mit Debuggern wie OllyDbg aus und braucht wohl kaum ein Tutorial mehr.


    Also gehts erst weiter wenn ich mein Assembler Tutorial fertig habe und.. *zum PHP Tut starr xD*

    PC Texthacking-Tutorial I


    1. Einführung
    Hi! Mit diesem Tutorial versuche ich euch ganz simples Text-Hacking für PC-Spiele beizubringen. Einmal die
    simple Variante mit dem Resource-Hacker und dann geht es einmal Hardcore ran.
    Ihr braucht hierfür keine Assembler-Kenntnisse auch wenn sie empfohlen werden.


    Als Beispielprojekt für dieses Tutorial hab ich in der Anlage ein kleines Projekt welches wir im laufe dieses
    Tutorials übersetzen werden. Wir wollen das Projekt auf Deutsch übersetzen.



    Zunächst brauchen wir dafür 2 kleine Programme die zum Glück Freeware sind.


    Downloaded also folgende Programme:


    Resource Hacker
    OllyDbg


    Und downloaded das Projekt hier, an dem wir alles testen:
    "Guten Morgen" Projekt



    Alle Programme müssen einfach nur irgendwohin entpackt werden.


    Vielleicht einen kleinen Blick auf das zu hackende Projekt werfen.
    Schönes Programm (was keiner braucht) aber wir wollen es komplett übersetzen.


    Lasst uns also loslegen!



    2. Das Dialog editieren


    Fangen wir mit dem einfachen Teil an.
    Startet den Resource Hacker und laded über File/Open das Projekt "Tutorial1.exe".


    Das ganze sollte jetzt so aussehen:
    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/rh01.jpg]


    Klickt nun auf das Plus vor dem Dialog. In der Liste erscheint ein 101. Das ist das Dialog
    mit der Nummer 101. Da wir keine anderen haben öffnen wir also auch diesen "Ordner" mit
    dem Plus davor. Wählt nun die neue Nummer aus die erscheinen sollte.
    Es öffnet sich nun folgender Code:



    Alle Texte zwischen den Anführungsstrichen kann man nun ändern. Ändern wir als die Daten so:
    "Good morning greets" - "Schönen guten Morgen!"
    "Greets" - "Grüße"
    "Quit" - "Beenden"
    "Enter your name:" - "Geben Sie Ihren Namen ein:"


    Klickt danach auf "Compile Script", sonst werden die Daten nicht übernommen. Die Vorschau
    sollte sich nun angepasst haben und so aussehen:
    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/rh02.jpg]


    Speichert das Programm mit File/Save As unter "Tutorial1b.exe". Wenn wir das Projekt jetzt starten
    haben wir ja schon fast alles Deutsch. Aber nicht zu früh freuen. Jetzt geht es nämlich an die komplizierteren
    Sachen.


    Den Ressource Hacker brauchen wir für dieses Projekt nun nicht mehr.



    3. Die MessageBox


    Theoretisch ginge dieser Part jetzt auch mit einem HEX-Editor. Aber für mögl. folgende Tutorials sollte man
    doch schonmal was mit dem OllyDBG gemacht haben.


    Startet den ollydbg. Öffnet damit nun die "Tutorial1b.exe". Jetzt bloss keinen Schock kriegen. Ihr werdet jetzt
    nämlich massig Assembler Code kriegen. Aber ich habe ja gesagt - wir brauchen für dieses Tutorial keine
    Assembler-Kenntnisse.


    Der Schock sollte etwa so aussehen :winking_face:
    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/od01.jpg]


    Macht mal irgendwo ein Rechtsklick auf den linken, oberen Bereich. Klickt auf Search for und dann
    auf All referenced text strings.


    Es sollte sich folgendes Fenster öffnen:
    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/od02.jpg]


    Siehe da! Unsere Texte die wir suchen sind sogar auch mit aufgelistet. Ein Doppelklick auf "Good morning :)"
    führt uns im CPU Fenster zur gesuchten Stelle. An dieser Stelle im Code wird nun ein Zugriff auf den Text
    gemacht. Es ist nur interessant zu wissen wie.


    Die markierte Zeile sollte so aussehen. Nur die Nummer hinten kann anders sein:

    Code
    PUSH   Tutorial.0040603C                    Title = "Good morning :)"


    Ein Rechtsklick auf diese Zeile. Wir möchten nun versuchen den Text im Speicher wieder zu finden.
    Wir wissen nur, dass der Text an der Stelle 40603C im Speicher ist. Da wir aber nicht über 10 Umwege
    diese Stelle erst raussuchen wollen halt der Rechtsklick. Wir gehen auf Follow in Dump und dann
    auf Immediate constant.
    In dem Fenster unten, links sind wir nun an der Stelle, an der "Good morning :)" steht:
    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/od03.jpg]


    Mit der Maus (gedrückte Maustaste) markieren wir nun den kompletten Text mit der darauffolgenden 00.
    Somit also die ersten, oberen 2 Zeilen in dem HEX-"Editor". Danach einmal mit Rechtsklick darauf klicken
    und auf Binary -> Edit gehen.
    Klickt auf das obere Eingabefenster in dem neuen Dialog, dass sich öffnen sollte. Überschreibt den Text
    mit "Guten Morgen!".
    Was fällt auf? Unser Text ist kürzer als der orginal Text. Wer ein wenig Erfahrung in der C++ Programmierung hat,
    weiss, dass es ein sogenanntes 0-Byte gibt. Dieses ist die 00 die wir unten im HEX Fenster sehen.
    Jeder Zahlen/Zeichenblock unten im HEX-Feld steht für ein Buchstabe oben bei ASCII. Die 00 ganz am Ende
    ist ein Zeichen, dass das Ende des Textes angibt. Wenn wir also den Doppelpunkt ( 3A ) mit einer 00 Ersetzen,
    haben wir auch da unser Ende Zeichen. Am besten füllt man gleich alles bis zum Ende mit Nullen auf.


    Das ist nicht leicht zu erklären aber seht einfach auf dem Bild wie es aussehen sollte:
    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/od04.jpg]


    Jetzt ist der Zeitpunkt gekommen das alles zu testen. Eins muss ich im voraus erwähnen. Das Programm besser
    NICHT beenden. Zum testen einfach oben auf den blauen Play-Knopf drücken (der Pfeil, der nach rechts zeigt) oder
    einfach F9 drücken. Das Programm öffnet sich meistens im Hintergrund


    Auch wenn wir jetzt weiter machen, das Programm nicht beenden!


    Jetzt ist alles soweit fertig. Schön, oder?


    Aber wir müssen noch speichern. Dazu wechseln wir wieder (ohne unser Programm zu beenden) zum OllyDBG.
    Dann klicken wir mit dem Rechtsklick auf unseren geänderten Text im "Hex dump" Fenster (die Markierung) und dann
    auf "Copy to executable".
    Es öffnet sich ein neues Fenster mit einem HEX Code.
    Dieses kann aber sofort wieder geschlossen werden. Dann kommt die Frage ob du speichern
    möchtest. Natürlich möchten wir das und zwar auf "Tutorial1c.exe". Jetzt können wir OllyDBG schließen und die
    neue EXE Datei öffnen.



    4. EXE Datei erweitern


    Irgendwie finde ich dieses starre "Hi /Name/!" sehr unfreundlich, dafür, dass er uns einen schönen guten Morgen
    wünscht. Das Problem ist aber, dass wir Texte bislang nur verkürzen können und nicht verlängern weil dazu nicht
    genug Platz in der EXE Datei ist.
    Wer ein wenig Ahnung vom GBA Texthacking hat, weiss bestimmt was ich mit umpointen meine. Vorhin bei dem
    "good morning" hatten wir folgende Zeile:

    Code
    PUSH   Tutorial.0040603C                    Title = "Good morning :)"


    0040603C ist dabei die HEX-Adresse in der EXE Datei. Die Stelle in der EXE-Datei, an der der Text steht.
    Würden wir die Zahl nun um eins erhöhen, also 0040603D, dann würden wir nur noch "uten Morgen!" haben,
    weil die Adresse eins zurück versetzt wurde.
    Das Problem, dass sich nun stellt ist: Wohin mit dem neuen Text? Wo haben wir Platz für weitere Texte?
    Man kann nun Glück haben und irgendwo eine freie Stelle finden, allerdings möchten wir uns nicht so
    einschränken.


    Unser magisches Tool heißt "LordPE". Eines von sicher mehreren Programmen, die neue Sektionen an die EXE
    anhängen können. Mehr dazu gleich.


    Hier gibt es das nette Tool :D
    http://mitglied.lycos.de/yoda2k/LordPE/info.htm



    Dieses wollen wir zugleich direkt auch mal starten. Als erstes klicken wir auf "PE Editor", wir wollen
    schließlich den PE-Header von der EXE bearbeiten. Da stehen nämlich die Sektionen drin. Es sollte sich
    ein "Öffnen-Dialog" öffnen in dem ihr die "Tutorial1c.exe" öffnet. Die ganzen Werte, die nun erscheinen
    sollen uns erstmal nicht stören. Wir klicken einfach auf "Sections", da wir es auf diese abgesehen haben.


    Nun erscheint eine Liste aller Sektionen, die es in dieser EXE Datei gibt:
    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/pe01.jpg]


    Alles davon müssen wir nicht kennen. Uns reicht wenn wir wissen:
    .TEXT ist der "Quellcode". Dort steht der ausführbare Assembler Quellcode.
    .RDATA beinhaltet konstante Texte, etc.
    .DATA beinhaltet Variablenplatzhalter.
    .RSRC beinhaltet Ressourcen. (Icon, Dialog, etc.)


    Wir wollen eine neue .RDATA Sektion einfügen. Rechtsklick auf irgendeine Zeile in der Liste und dann
    "add section header" auswählen. Es sollte eine neue Zeile erscheinen:

    Code
    .NewSec   00009000   00000000   00008000   00000000   E00000E0


    Rechtsklick auf diese neue Zeile und "edit section header..." auswählen.
    Es öffnet sich ein neues Dialog. Als Namen können wir eigentlich eintragen, was wir wollen. Sollte nur
    kurz sein und am besten mit einem Punkt beginnen. (Einfach um sich an Standarts zu halten :winking_face: )
    Ich hab meine mal ".odata" für "own data" genannt. Die VirtualAddress und den RawOffset lassen wir so,
    wie er ist. Das ist einmal die Position später im Speicher und einmal die Position hier in der EXE Datei.
    Bei VirtualSize und RawSize tragen wir nun mal 00000800 ein, also 2048 im Dezimalsystem. Reicht auf jeden
    Fall für unsere neue Nachricht. Nun noch ein Klick auf die drei Punkte hinter Flags.


    Hier kann man nun Eigenschaften festlegen, die diese Sektion haben soll. Wir brauchen eine Sektion,
    die nur "Readable" ist und nicht "Contains executable code" hat.
    Ebenso brauch "Contains uninitialized data" keinen Haken.


    Rechts im Kästchen "Current value" sollte nun 40000040 stehen.
    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/pe02.jpg]


    Dann OK und OK. Jetzt sind wir wieder bei der Liste.
    Eigentlich könnte man denken, dass wir fertig sind, sind wir aber noch nicht!
    Wir müssen an unsere EXE Datei nämlich noch Bytes anhängen, die wir für unsere neue Sektion benutzen
    können. Ohne diese Bytes könnten wir schließlich keine Nachrichten speichern.


    Dazu reicht allerdings ein Rechtsklick auf unsere neue Zeile und dann "truncate at end of section".
    Jetzt können wir das Fenster schließen mit den Sektionen und in dem darunterliegendem Dialog auf
    "SAVE" klicken. Danach nur eben noch auf "OK" und "EXIT".
    Und schon haben wir das auch erledigt.



    5. Restarbeit


    Jetzt öffnen wir die Tutorial1c.exe wieder mit OllyDbg. Wir wollen nun einen neuen Text in unsere ebenso
    neue Sektion schreiben. Dazu klicken wir einfach auf das "M" oben mit dem türkisen Hintergrund.
    Es öffnet sich ein "Memory map" Dialog, in dem wir unsere neue Sektion sehen sollten.

    Code
    00409000  00001000  Tutorial  .odata   -   Imag   R   RWE  -


    Einmal Doppelklick darauf und es öffnet sich ein HEX Editor. Markiert einen größeren Abschnitt und macht
    Rechtsklick "Binary" -> "Edit"


    [Blockierte Grafik: http://www.devil-studios.de/profeich/pchdemo/od05.jpg]



    Jetzt müssen wir uns kurz zurück errinern. Die Nachricht lautete "Hi %s.". Also muss %s der Platzhalter
    für den Namen sein! Wunderbar! Also lasset uns eine neue Nachricht schreiben mit %s als Platzhalter:


    "Hallo %s! Ich wünsche dir einen schönen guten Morgen!" als Beispiel.
    Wobei ich das Leerzeichen hinter dem Aufrufezeichen noch durch HEX 0A ausgetauscht habe für einen
    Zeilenumbruch.


    Merkt euch unbedingt die Adresse, an der der Text steht. Sollte bei uns eigentlich immer 00409000 sein.


    Nun wiederholen wir nochmal den Part mit dem Suchen nach allen Texten. Nur diesmal ein Doppelklick
    auf "Hi %s."



    Die markierte Zeile sollte nun etwa so aussehen:

    Code
    PUSH Tutorial.0040604C                        ASCII "Hi %s."


    Rechtsklick darauf und "Assemble" auswählen.
    Überschreibt nun die Adresse 0040604C mit der neuen Adresse 00409000 und drückt auf "Assemble"
    und danach auf "Cancel".


    Nun probieren wir das Programm erstmal wieder aus. Dazu einmal auf den blauen "Play"-Knopf drücken.
    Denkt dran: Das Programm nicht beenden!
    Nachdem wir unseren Namen eingegeben haben werden wir nun freundlichst begrüßt!


    Aber jetzt müssen wir noch speichern. Dazu wechseln wir wieder zu OllyDbg.
    Rechtsklick auf das Fenster und "Copy to executable" -> "All modifications".
    In dem Fenster das sich dann öffnet einmal auf "COPY ALL" klicken.


    Aber Achtung! Er hat sich nicht wirklich alles gespeichert. Rechtsklick auf unsere geänderte Zeile
    und "Follow in Dump" -> "Immediate constant". Unten in dem HEX-Editor sollte nun unser neuer Text
    stehen. Markiert den und macht dann einen Rechtsklick drauf und wählt auch dort
    "Copy to executable" aus.
    Jetzt dürft ihr das Fenster mit dem HEX Code, welches erscheint schließen. Auf die Frage, ob
    wir es unter einem anderen Dateinamen speichern wollen wählen wir "JA" und speichern das
    ganze als "Tutorial1d.exe".


    Beende nun OllyDbg und starte die Tutorial1d.exe Datei. Mal schauen ob es klappt.
    Und nun sollte es eigentlich schon klappen, sonst habt ihr was falsch gemacht oder ich zu schlecht
    erklärt.



    6. Next time


    Falls es ein Texthacking PC Tutorial 2 geben sollte, werde ich ein wenig Assembler Kenntnisse
    voraussetzen müssen. Aber mal schauen :smiling_face:


    Feedback, sowohl negativ (wohl eher ^^") als auch positiv ist sicherlich erwünscht!

    Schon ein bißchen ältere News. Aber es gibt immer welche, die es noch nicht wissen *G*


    Die nächsten Editionen sind schon in Entwicklung. Diesmal für den Gameboy DS.


    Auch wenn Nintendo den DS nur ungern als Nachfolger seines GBA ansehen möchte, so kann man nicht bestreiten, dass vor allem Abwärtskompatibilität und die Funktionen mancher Nintendo DS Spiele trotz allem stark dafür sprechen. Unter anderem auch die neuen Pokémon Titel, die unter den Namen Diamond, Pearl und Dash vermarktet werden.


    In einem Interview der Famitsu mit Tsunekazu Ishihara von Creatures konnten diverse Standpunkte geklärt werden: "Wir haben bisher viele Pokémon Spiele entwickelt, die einen leichten Einstieg in das Universum darstellen. Speziell Titel wie Ruby, Saphire und Emerald stellen ein wichtiges Rückgrat der Serie dar. Also haben wir begonnen, die kommenden Titel Diamond und Pearl als wahre Nachfolger dieser Spiele zu entwickeln. Damit werden wir so richtig in Pokémon einsteigen - freut euch schon darauf!"
    Vor allem wurde verdeutlicht, dass es sich bei den Spielen nicht lediglich um Updates oder abgespeckte Versionen handeln würde, sondern dass die Pokémon Innovation mit allem Drum und Dran fortgeführt werde.


    Damit aber noch nicht genug. Pokémon Dash hat nämlich noch ein ganz besonderes Feature mit im Gepäck. Steckt man während dem Spielen von Dash nämlich ein GBA Pokémon-Modul in den DS, so verbinden sich beide Spiele miteinander.
    Ishihara hierzu: "Steckt Ihr während dem Spielen von Dash ein GBA Pokémon in Euer System, so werden sich eure Pokémon in Rennstrecken verwandeln. Es werden sozusagen Fun Strecken sein, in Form eines Pokémon."


    Sicherlich eine sehr erfreuliche Nachricht für alle Pokémaniacs! Auch alte Fans und Freunde der RPGs dürften somit einen Anreiz haben, mit dem DS zu liebäugeln. Die breite Fangemeinde des Poké-Universums wird sicherlich auch weiterhin ein wichtiges Zugpferd Nintendos darstellen. Sollte weiteres bekannt werden, seid Ihr bei uns wie immer an der richtigen Adresse, um es zu erfahren!



    Quelle: http://www.gu-videogames.de/uni-gameboy/