
.........................................,,,,,,,,,,;;;;;;;;;;::::::::::W A R N U N G::::::::::;;;;;;;;;;,,,,,,,,,,............................................
Dieses Tutorial dient ausschließlich Lernzwecken und ist nicht als Anstiftung zu einer illegalen
Handlung zu sehen! Sämtliche hier aufgeführten Übungen und Prozeße sollen lediglich das
Verständnis von Programmierungsmöglichkeiten veranschaulichen und die diversen Möglichkeiten
eines Schutzes gegen illegale Benutzung einer Software anzeigen.
Dies kann unter Umständen Programmierern helfen, ihre Schutzmechanismen in eigenen Applikationen
stark zu verbessern! Sobald jemand unter Anleitung oder mit dem eigenen Wissensstand die
Sicherheits-, Registrierungs- oder sonstigen Mechanismen umgangen bzw. ausgeschaltet hat, ist die somit
funktionstüchtige und ohne Einschränkungen laufende Software SOFORT und ohne VERZÖGERUNG
vom System zu entfernen.
Dies beinhaltet die Deinstallation und das Löschen aller Datein und Registrierungseinträge!
DIE WEITERE BENUTZUNG GECRACKTER/GEPATCHER SOFTWARE IST ILLEGAL
UND WIRD VOM GESETZTGEBER GEAHNDET!
DER AUTOR/DIE GRUPPE ÜBERNIMMT KEINE VERANTWORTUNG FÜR JEGLICHE
HANDLUNGEN DIE GEGEN GELTENDES RECHT VERSTOßEN!!!
......................................,,,,,,,,,,;;;;;;;;;;::::::::::[NeuRom@nCerZ]::::::::::;;;;;;;;;;,,,,,,,,,,.............................................

|
Target- Programm: |
Image Eye v.4.0 |
|
Größe: |
135.168 bytes |
|
WWW: |
|
|
Grad der Schwierigkeit: |
Leicht – mittel |
|
Verwendete Toolz: |
Softice 3.25 , Hview 6.04 |
|
Wann erstellt: |
Dienstag, 4. Mai 1999 |
Einschränkungen (unregistriert): -Nagscreen, 30 Tage Trial
Schutzart: -Serialnummereingabe, gepackt (unbekannter Packer)
Schutzdeaktivierung: -Progamm schreibt sich im Speicher zur Vollversion um
Hi Crackers heute wollen wir uns mit dem Programm Image Eye befassen:
Programm installiert und gestartet wir sehen das in der Windowszeile das unschöne Wort (unregisterd) erscheint, sowie bei jedem geladenen Bild dieses unschöne Wort UNREGISTERD sich einblendet.

Wir sehen uns die Properities und da den Eintrag / Programm an. Wir wollen uns registrieren und sehen es wird ein Keyfile verlangt wir laden ein x-beliebiges TXT-File aber was kommt da für eine Meldung

Ja wir haben nichts anderes erwartet. Das sieht doch nach einer Messagebox aus oder nicht? Also was machen wir , wir starten Softice des Crackers besten Freund. In Softice setzen wir eine BPX Messageboxa und starten nochmals die Registrierung – Softice poppt hoch wir drücken PF12 bis wir im Programm Image Eye ankommen und drücken nochmals PF8 da sehen wir doch ein bißchen weiter oben im Coding einen Kondition Jump 7508 und noch ein bißchen weiter oben nochmals einen Kondition Jump 7440. Nun die ändern wir doch gleich den ersten Jump führen wir nicht aus und den zweiten Jump führen wir aus. Wir drücken nun die PF5 und das Programm will uns weismachen wir sind registriert.

Also gleich vorne weg das war ein falscher Ansatzpunkt und hat uns nichts als Zeit gestohlen. Wir müssen uns was anderes einfallen lassen..
Wir suchen den Programmanfang dieser befindet sich an der Adresse 43B000 und setzen hier einen Interrupt 3 d.h.(Dank an Viper Zx) wir ändern das Hexazeichen 60 nach CC ab und gehen in Softice und setzen hier einen BPINT 3 ( was nichts anderes bedeutet als das bei jedem Interrupt 3 Softice die Kontrolle über das Programm bekommt). Wir starten Image Eye und sofort poppt Softice hoch wir geben einen E EIP ein und ändern im Datawindow das Hexazeichen CC nach 60 um und an der Adresse 43B090 setzen wir einen Breakpoint. Ab hier ist das Programm im Speicher entpackt und wir können patchen nach Herzenslust. Aber wo sollen wir patchen undvor allem was sollen wir patchen.

1. Teil der NAG (UNREGISTERD) in der Windowstitlezeile:
Ich setze einen search in Softice auf der folgendermassen lautet " s 0 l ffffffff ´(unregis´" und harre der Dinge die da kommen, was sehen meine Augen, mein Freund Softi hat etwas gefunden. Sofort setze ich einen BPM an der gefundenen Adresse und verlasse Softice. Nun das Programm erneut starten in der Selectfilebox ein Bild auswählen und losgehts. Softice poppt hoch und zwar an der Adresse 40A234 ein paar Adressen weiter oben sehe ich einen CALL und danach eine Abfrage 40A230: 740C, wird der Condition jump zum echten jump EB0C gemacht kommt in der Windowzeile dieser störende Nag nicht mehr. Aber was passiert in dem CALL – auf jedem Fall nichts gutes es werden nämlich wenn bestimmte Bedingungen zutreffen AUTOEXEC.BAT / CONFIG.SYS u. COMMAND.COM gelöscht. Nun wir werden das sofort ändern wir folgen dem CALL und machen aus dem mov EAX,[00433C14] einen XOR EAX,EAX und einen RET damit sprint der Condition Jump an der Adresse 40A230 immer richtig, jetzte haben wir 2 Fliegen mit einer Klappe geschlagen.
2. Teil Expiration Time:
Ich setze einen BPX GetSystemTime und schau mal ob ich die Stelle finde wo das Trialdatum berchnet wird und wirklich SI poppt hoch ich drücke PF12 und befinde mich wieder im Programm nach dem Aufruf des GetSystemTime. Ein paar Coding Zeilen weiter unten sehe ich einen CMP ECX,1E das ist die gefürchtete Trialabfrage und danach kommt ein Condition jump 7653 den ändern wir an der Adresse 40A909: EB53. Damit wäre dieses auch erledigt.Jetzt kam meines erachtens der schwierigste Teil – der Nagscreen in den Bildern der mich auch 2 Tage kostete.

3. Teil der NAG UNREGISTERED in jedem Bild:
Wo sollte ich ansetzen ich war am verzweifeln.L L

Im Programm gab es den Register Button und ich erinnerte mich, das an der Adresse 403F33 ein CALL 4049B0 war in dem er prüfte ob das Programm registriert ist – war das wohl die ominöse Stelle? Ich setzte einen BPX 4049B0 und lade ein neues Bild, sofort poppte SI an der zuvor eingegebenen Adresse hoch. Ich sehe mir den Code an und an der Adresse 404A07 sehe ich einen TEST EAX,EAX und danach ein SETZ AL , daß könnte es sein dachte ich mir und änderte den Code auf SETNZ AL. Ich gehe mit PF8 durch die nächsten Steps damit mir nichts entgehen soll und komme an der Adresse 40A60A wieder raus und da sind die entscheidenden Befehle TEST al,al und SETZ CL. Also muß der Code an der Adresse 404A09: 0F94C0 auf 0F95C0 abgeändert werden und damit ist das Programm mit allen Funktionen lauffähig.
4.Teil Patch des Programms:
Zuerst suchen wir uns eine geeignete frei Stelle im Programm die Adresse 43BAA0 scheint geignet zu sein.
|
Adresse |
Assembly |
Hexa Code |
Beschreibung |
|
|
43B08A |
Jmp 43BAA0 |
E9110A0000 |
Jump zur freien Stelle |
|
|
43BAA0 |
MOV EBX,4047D0 |
BBD0474000 |
Adresse für Patch laden |
|
|
43BAA5 |
MOV DWORD PTR [EBX],33C0C390 |
C70333C0C390 |
XOR EAX,EAX + RET generieren |
|
|
... |
MOV EBX,40A909 |
BB09A94000 |
Adresse für Patch laden |
|
|
... |
MOV BYTE PTR [EBX],EB |
C603EB |
JMP generieren |
|
|
.. |
MOV EBX,404A0A |
BB0A4A4000 |
Adresse laden |
|
|
.. |
MOV BYTE PTR [EBX],95 |
C60395 |
SETNZ generieren |
|
|
.. |
MOV [ESP+1C],EAX |
8944241C |
Code vor und nach dem Jump |
|
|
.. |
POPAD |
61 |
|
|
|
.. |
PUSH EAX |
50 |
|
|
|
. |
RET |
C3 |
Hier geht’s ab ins Hauptprgramm |
|
|
GCCNavigator
|