.........................................,,,,,,,,,,;;;;;;;;;;::::::::::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]::::::::::;;;;;;;;;;,,,,,,,,,,.............................................
|
|
|
|
|
|
|
|
|
Ziel Prog -> www.webcompiler.com
Schwierigkeit: Leicht -> Mittel
maked by Viper Zx
E-Mail:Viperzx00@gmx.net
Einschränkungen (unregistriert): -in denn compilierten EXE´n wird ein NAG "eingebaut"
Schutzart:
-KeyFile
-Petite gepackt Very
importend!!!
Schutzdeaktivierung:
-die "Hauptexe" (gepackt) wird so modifiziert das sie in die compilierten
EXE´n
(gepackt ) eine Routine einfügt die denn NAG bei jedem Start
umgeht.
Los geht´s
Prog installiert und gestartet ja wo können wir uns Registrieren???
Aha mal unter About geschaut
auch nichts weltbewegendes wo ist die Einschränkung?
Unter Hilfe steht das wenn man sich registriert ein Keyfile bekommt. Hmmmm.
Also Compilieren wir mal eine EXE und schauen was passiert (am besten unter
Cache bei Netscape
etc. etwas auswählen) so auf Compile einen Namen für die compilierte
EXE eingeben und los gehts.
Fertig! EXE starten und da ist ja der NAG. Das ist die einzige Einschränkung
das Prog´s!!!
Also Wdasam32 gestartet und Webcompiler disassembeld Arrggggghhh
geht nicht, ist gepackt.
Mit dem Hexeditor mal schnell denn Anfang der EXE angeschaut und da steht´s
"Compressed by Petite....." Schei....
Da müssen wir uns mit Softice auf denn Weg machen was soll´s.
Okay wo setzen wir an, ich würde sagen bei der Compilierten EXE da
sie denn NAG hat, und da
es sich um eine Keyfile Abfrage handelt nehmen wir bpx
createfilea.
Wir starten die comp. EXE und Softice breakt jetzt solange F5 und F12 bis
unsere EXE
bei Softice zu sehen ist.
Ab hier testen wir mal wieoft wir F5 drücken müssen bis der NAG
kommt er kommt schon
beim zweitenmal also, von vorn diesmal 1. F5 und dann F12 (4 mal) jetzt
F10 und was sehen
wir bei 00479734 einen Call
gefolgt von einem test al,al und einem Jnz
testweise schreiben wir mal
denn Jnz zum Jz um und lassen das Prog mal durchlaufen (bc*). Ja der NAG
kommt nicht mehr
also wird im Call über dem Jnz getestet ob Registriert oder nicht
,das sehen wir uns mal genauer an.
Also rein in denn Call und geschaut das Prog springt im Call auf 004820B6
dort steht mov eax,ecx
er verschiebt das Register ECX in EAXAlarm
Alarm Alarm in ECX steht 0.
Da wäre es doch die beste möglichkeit hier zu patchen wir suchen
uns ein Register das mehr als
0 hat ,EBP sieht gut aus und ändern mal
testweise denn mov eax, ecx zu mov eax, ebp
lassen
das Prog laufen und ja es klappt das Prog ist schon
fast Terminiert.
Es gibt noch 2 Probleme wir kennen zwar die Stelle wo wir Patchen (Cracken
;-)) müssen
aber das Prog ist gepackt und wir müßten jede Compilierte EXE
Cracken :-(.
Wir schauen uns mal die Webcompiler EXE an (ist auch gepackt) und setzen
unseren
bpx createfilea, wieder F5 F12 bis wir im Prog sind jetzt geben
wir "u" und unsere Patchadresse
(004820B6) es wird unsere Stelle (mov
eax,ecx) gezeigt.
Diese CheckRoutine wird in die compilierten EXE´n mit kopiert und
dort "erst" ausgeführt
wir müssen die "Hauptexe" so modifizieren, sprich etwas einfügen
(der CRACK ;-)) der
in JEDE compilierten EXE mitkopiert und ausgeführt wird
um unseren mov eax,ecx
zu manipulieren.
Das machen wir so:
( es wäre besser schon etwas Erfahrung in sowas zu haben, am besten
meinen TUT zu AAPR oder FolderRemarker lesen, des besseren
verstehen wegen´s da ich hier nicht alles wieder so ausführlich
schreiben
werde ;-))
Als erstes brauchen wir den Prog Entry Point
wir nehmen Hview und laden die EXE
gehen in denn Decode Modus drücken F8 und F5 ZoooooooMMMMMM
wir sind am Entry Point.
Wir stehen auf B8 diesen ändern wir zu
CC
(Int
3) und in Softice geben wir bpint 3 ein
jetzt starten wir die EXE und Softice breakt wir geben d eip ein und ändern
unser CC
wieder zu B8 jetz ist das Prog wieder lauffähig (im Speicher ;-))
mit F10 arbeiten wir Zeile für
Zeile ab und testen ab und zu mit "u" Patchadresse
ob diese schon im Speicher entpackt ist.
Der Call bei 004BA5F6 geht ins Hauptprogramm
welches im Speicher steht diesen zu benutzen,
um vorher an eine Freie Stelle zu Springen wo wir unseren Patch unterbringen
ist NICHT möglich.
Wir müssen vorher springen das wäre bei 004B9118
dieser
Jz springt zum Call wir ändern
ihn aber so ab des er erst zu unserer Freien Stelle springt (wie
man soeine findet AAPR Tut etc.)
ich habe die Stelle 004BAB00 genommen.
Wir schreiben denn Jz bei 004B9118 zu Jz 004BAB00
um bei 004BaB00 wird unserer
Patch eingebaut mov b,[004820B7],0C5 danach
noch der ursprüngliche Sprung von
004B9118 -> Jmp 004BA5F6.
FERTIG das Prog ist gecrackt!!!
Hview Schreibweise!!! OFFSET!!! (F3 bei Hview)
Listing:
004B9118 Jz 00001F00
;Sprung zur freien Stelle
(00001F00) 004BAB00
mov b,[004820B7],0C5 ;Patch ,es wird ECX durch EBP (C5) ersetzt
jmp 000019F6
;ursprünglicher Sprung von 004B9118
Ich Grüße alle Mitglieder von
[NeuRoM@nCerZ]: Vladimir,Tco95,Bionic,Maex,Nikai,Blackhawk etc.
Viper Zx
[NeuRoM@nCerZ]