.........................................,,,,,,,,,,;;;;;;;;;;::::::::::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/GEPATCHTER 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]::::::::::;;;;;;;;;;,,,,,,,,,,.............................................
|
|
|
|
|
|
|
|
|
Hersteller: White Elk Software
Ziel Prog -> www.whiteelk.hypermart.net
Schwierigkeit: Mittel
Cracked by Maex
& Viper Zx
maked by Viper Zx
Einschränkungen (unregistriert): -Description größe limitiert
Schutzart:
-Serialnummereingabe
-Gepackt (unbekannter Packer) Very
importend!!!
Schutzdeaktivierung: -Prog schreibt sich bei jedem Start selber zur Vollversion ;-)
Los geht´s
Prog installiert , recht Maustaste auf eine Datei und auf Eigenschaften
gehen jetzt haben wir oben
einen Neuen Eintrag Description wir gehen drauf und sehen sofort denn Button
"Registration"
und unter About steht Unregistrierte Version.
Auf Registration gedrückt wir werden aufgefordert einen Namen und
denn zugehörigen Code
einzugeben.Also Name , Faknummer rein und O.K gedrückt nicht´s
passiert keine ErrorBox
Das ist schlecht aber mal sehen Sofice an, bpx hmemcpy eingeben,
wieder Name, Fakenummer
O.K gedrückt Softice kommt an und wir drücken solange F12 bis
wir im Prog sind das ist
bei 0370561F (Hinweis:
0370 muß nicht dastehen dort kann bei jedem etwas anderes stehen
561F ist aber immer gleich ;-) ,das liegt daran das sich das Prog im Speicher
verschiebt kommt
darauf an was gerade geladen ist Norton Commander etc. ,deswegen gebe ich
immer nur die letzen
4 Adressen an)
Wir sehen auch den test eax,eax und gehen mit F10 gleich mal hin
schauen in das EAX Register
dort steht eine 0 hmmmmm 0 ist nicht gut deshalb ändern wir den nachfolgenden
JZ mal
ins gegenteil JNZ (mit F10 bis zum JZ dann "a" Enter und die Eingaben machen).
Wir lassen das Prog laufen (F5) und sehen der Registration Button
deaktiviert wurde COOL wir
haben´s geschaft. Falsch unter About steht immer noch Unregistrierte
Version und der Register
Button ist aktiviert.
Also müßen wir in den Call xxxx5621
F8 jetzt Tracen wir mit F10 weiter es kommen ein paar
Registry Einträge (dort wird der eingegebene Name in die Registry
geschrieben)
Wir gehen weiter kommen an Adresse xxxx5235
an einen Call wenn wir über diesen gehen
würden, hätte EAX 0 bekommen also muß die Entscheidung
in diesem Call getroffen werden
ob richtige Nummer =Registriert oder Fakenummer =Unregistriert.
Mit F8 in diesen Call hineien und mal umgeschaut ziemlich übersichtlich
:-) 3 JNZ
immer auf die selbe Stelle, hmmmmmm die Stelle mal angeschaut ein Xor eax,eax
was bedeutet:
setze EAX auf 0 :-( wollen wir ja nicht wenn wir alle JNZ umschreiben würden
könnte es gehen
HALT es geht noch einfacher wir schreiben
den ersten JNZ so um das er auf die Adresse
xxxx6ACA springt dort steht DER
mov eax,00000001 dieser setzt EAX auf 1 =Registriert
So denn JNZ bei xxxx61A2 so umgeschrieben das er auf xxxx6ACA
springt.
F5 Prog laufen lassen Okay der Registration Button ist deaktiviert (hatten
wir aber schon ;-))
wir klicken auf About JEPPPPPPIIIIII unser Name steht drin und der Register
Button ist auch
deaktiviert.Ebenso ist die limitation der Description´s aufgehoben.
Jetzt schnell die folderem.dll mit Hview gepatcht fertig AHHHHHHHHHHHHHHHHHHHHHHHH
unsere Adresse wird nicht gefunden WARUM??? WARUM???
WARUM???
Die DLL ist gepackt SCHEI...
Okay nehmen wir halt ProcessPatcher :-) AHHHHHHHHHHHHHHHHHHHHHHH
geht nicht es ist eine DLL die kann er nicht Patchen (auch wenn er´s
könnte wäre bei dem
Prog ein bisschen sinnlos ;-),da es ja über Eigenschaften aufgerufen
wird und sich im Speicher verschiebt)
Also bleibt nur noch die Serial zu Sniffen SCHEI...
ist das schwer!!!
Keine Panik es gibt noch eine Möglichkeit "Von Hinten durch die Brust ins Auge" ;-)
Wir lassen sich das Prog bei jedem Start selber zur
Vollversion umpatchen!!!
Uns so geht´s
Als erstes müßen wir das Prog am Entry Point (wo es startet)
breaken und das machen wir so,
Prog in Hview laden in denn Decode Modus gehen und F8 (Header) drücken
dann F5 (EntryPoint)
und wir stehen am Entry Point wir sehen eine 60 diese erstezen wir durch
CC (Int 3).
Jetzt Softice aufrufen und bpint 3 eingeben.
Folder Remarker starten rechte Taste Eig.....
BUMMMMMM Softice breakt wir geben d eip ein um im oberen Fenster denn EntryPoint
angezeigt
zu bekommen wir sehen unser CC doppelklick mit der Maus auf selbiges und
schreiben wieder unsere 60 hin..
Mit F10 Zeile für Zeile abarbeiten lassen bis wir bei xxxx8039
stehen nach diesem Call ist das Prog
im Speicher entpackt ;-).
Der nachfolgende mov ist unser, Prog ist entpackt jetzt müßen
wir unsern Patch unterbringen daszu
suchen wir uns eine Freie Stelle im Programm mit Hview.
Hview an, an unseren mov springen (0041803E
unter Hview) und jetzt abwärt´s nach einer (großen) Freien
stelle Suchen am Ende des Prog´s finden wir etwas bei Adresse B92F
<-Offset Adresse wenn man F3 bei
Hview drückt).
Also ändern wir unsern mov bei 0041803E
zu eine JMP 0000B92F (sprung zur freien Stelle)
dort schreiben wir unseren Patch (Crack) das geht folgendermaßen:
Normalerweise würde man jetzt mov b,[03F161A3],026 (Hviewschreibweise)
schreiben
diese Zeile bedeutet ändere denn Sprung an 03F161A3 von xx zu 26 nach
Adam Riese
vom xor eax,eax zum mov eax,00000001.
DAS FUNKTIONIERT HIER ABER NICHT!!! gell Maex ;-)
Da sich das Prog im Speicher immer verschiebt ist die ganze Adresse jedesmal
anders
die ganze Adresse NEIN ein kleiner Teil bleibt gleich der Offset die letzen
4 Stellen.
Nur der vordere Teil ändert sich immer z.B 03F1 oder 03E6 etc.
Das Prog arbeitet so, es ist im Speicher entpackt nach dem Call xxxx8039
und an stelle xxxx804F steht ein JMP
EAX und in EAX steht IMMER
die aktuelle Speicheradresse wo er hinspringen muß.
Jetzt müßen wir ausrechnen wie weit von dieser Adresse unsere
Änderung (sprich der Crack) entfernt ist.
Wir nehmen eine ungepatchte Version nur mit CC (Int 3) dann
nehmen wir Softice gehen mit F10 über denn Call
xxxx8039
bis zum popad jetz steht die Aktuelle Sprungadresse für nachfolgenden
JMP EAX
im Register EAX diese schreiben wir uns auf.
F5 Prog laufen lassen und die selbe Prozedur wie am Anfang des Tutor´s
beschreiben durchführen
bis wir an unserer Änderung (Crack) stehen das ist bei xxxx61A2
diese Adresse schreiben wir uns ebenfalls auf und jetzt rechnen wir die
differenz zwichen beiden aus.
das ist z.B. 03FA1000 ; Sprungadresse
EAX
03FA61A3 ;Crackadresse
ergibt:51A3
Wir müssen also zu EAX IMMER 051A hinzufügen
und unser Crack erfolgt immer an
der richtigen Stelle!!!
Listing Hview:
Offset AE3E Jmp
0000B92F
Offset B92F mov
b,[eax][000051A3],026 ;ändert unsern
Sprung statt zu xor eax,eax zu mov eax,00000001
addiert zur jeweils aktuellen Speicheraddresse die in EAX ab hier
drinsteht 51A3 damit schlägt unser mov b, immer an der RICHTIGEN
Stelle auf ;-)
mov eax,[ebp][00043DE03] ;die Zeile
die wir durch unsern JMP zur freien Stelle überschrieben haben
add eax,[ebp][00043DE17] ;nachfolgender
Code
mov [esp][00001C],eax
popad
jmp eax
;dieser JMP springt dann ins Hauptprogramm im Speicher
.
Fertig, Prog wird IMMER (bei jedem START) zu einer Vollversion!!! ;-)
Ich grüße alle Mitglieder von NeuRoM@nCerZ
,Torn@do und natürlich Maex
der einen großen Teil zum Cracken
von Folder Remarker beigetragen hat.
Viper Zx
[NeuRoM@nCerZ]
E-Mail: Viperzx00@gmx.net
|
GCCNavigator
|