.........................................,,,,,,,,,,;;;;;;;;;;::::::::::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]::::::::::;;;;;;;;;;,,,,,,,,,,.............................................


Target- Programm:
Webcompiler 98 v.114
Größe:
1.7 MB
Verwendete Toolz:
Softice ab 2.32 ; Hview 6.04

               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]