Menu

Tutorial per ENALOTTO 3.0 Crack

ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
Û²                               [x] RingZ3r0  Proudly Presents [x]                            ²±
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ENALOTTO 3.0 Crack
Pusillus
13 gen 1999
L'AUTORE DI QUESTO TESTO NON SI PRENDE NESSUNA RESPONSABILITA' PER L'USO CHE NE VERRA' FATTO POICHE'
E' STATO ESPRESSAMENTE CONCEPITO PER PURI SCOPI DITATTICI.
--> CRACKING TUTORIAL
data la poca difficolta di Questo tutorial è consigliato a chi è alle primissime
esperienze.
--> TOOLS NECESSARI
W32DASM 8.9     (reperibile su molti siti dedicati al cracking)
HIEW            (hacker view, editor esadecimale)
--> PROGRAMMA TARGET   ENALOTTO BETA 3.0    (http://www.daniele.net)
Il programma "target" e' un tool per lo sviluppo delle schedine    enalotto.
1) Installiamo il programma.
2) Proviamo a fare uno sviluppo di schedine abbastanza impegnativo.
Apparira' una messagebox con la scritta: "Con la versione beta e' possibile inserire max 12 numeri".
Continuando ad usare il programma arriviamo al menu:    "Sistemi Ortogonali
--->Applica sistema" e anche qui selezionando i vari   sistemi disponibili otteniamo una bella messagebox:
" Con la versione   beta e' possibile applicare solo il sistema num10g5.ass"
Caspita, questo programma non funziona molto bene! cerchiamo di    migliorarlo!
3) Prendiamo nota del testo delle messagebox :"Con la versione beta e'..."
Chiudiamo il programma e facciamo una copia di enalotto.exe.
Lanciamo w32dasm e disassembliamo la copia che abbiamo appena fatto.
Tramite il menu' "Refs" e il sottomenu' "String Data references"   apriremo la lista delle stringhe
di testo usate dal programma.
Andiamo a cercare il messaggio di cui abbiamo preso nota, pntiamolo   con il mouse e diamogli
un doppio click.
Nella finestra principale di W32dasm apparira la parte di codice in cui e' contenuta la stringa
in questione
:----------------------------------
:00464C00 50                      push eax
:00464C01 E8C8260500              call 004B72CE
:00464C06 8B4C2454                mov ecx, dword ptr [esp+54]
* Possible StringData Ref from Data Obj ->"num10g5"                                  |
:00464C0A 68305B5000              push 00505B30
:00464C0F 51                      push ecx
:00464C10 E82BC30300              call 004A0F40
:00464C15 83C408                  add esp, 00000008
:00464C18 F7D8                    neg eax
:00464C1A 1BC0                    sbb eax, eax
:00464C1C F7D8                    neg eax
:00464C1E 84C0                    test al, al
:00464C20 0F84CE000000            je 00464CF4
:00464C26 6A30                    push 00000030
:00464C28 6A00                    push 00000000
* Possible StringData Ref from Data Obj ->"Con la versine beta e' possibile "                                        ->"applicare  solo il sistema num10g5.ass"                                  |:00464C2A 68E85A5000              push 00505AE8:00464C2F 8BCD                    mov ecx, ebp:00464C31 E84BAE0500              call 004BFA81-----------------------------------Una piccola delucidazione per chi non conosce nulla sulla sintassi dell'output fornito dal disassemblatore::0043E30D 83FA64                  cmp edx, 00000064     |       |                          |     |       |                           - Codice Mnemonico     |       - Istruzione (base Hex)     - indirizzo del codice (base Hex)   Cerchiamo di capire cosa combina il programma prima di visualizzare la   famigerata messagebox:   All'indirizzo 00464C20 c'e' un'istruzione molto interessante: JE 00464CF4;    questo comando dice che deve essere eseguito un salto al verificarsi   di una particolare condizione e cioe' quando l'ultima operazione eseguita    risulta uguale ( JE    Jump if Equal ).      (Se fosse eseguito il salto (je) il programma non processerebbe la stringa   e non sarebbe eseguta la call:   :00464C31 E84BAE0500              call 004BFA81   se seguite la call cn il wdasm vi accorgete che verra' invocato il comando    messageboxa).      Torniamo al nostro JE: Mmmm... minore o uguale a cosa?   Le istruzioni di salto sono condizionate dallo stato del registro di flag   che contiene svariate informazioni sul risultato dell'ultima operazione   eseguita dalla CPU. L'ultima operaziene eseguita dalla CPU e' quella   appena sopra l'struzione di je::00464C1E 84C0                    test al, al   il comado TEST fa un and logico tra i due operandi e modifica solo il    registro di flag senza salvare il risultato dell'operazione. dando uno   sguardo al codice si intuisce che il programma non fa altro che comparare   il nome del file ammesso con quello selezionato::00464C06 8B4C2454                mov ecx, dword ptr [esp+54]* Possible StringData Ref from Data Obj ->"num10g5"                                  |
:00464C0A 68305B5000              push 00505B30
:00464C0F 51                      push ecx
:00464C10 E82BC30300              call 004A0F40
:00464C15 83C408                  add esp, 00000008
il risultato di questa operazione viene salvato in AL e il programma con   TEST controlla
l'esito della comparazione.
Bene andiamo a controllare cosa succede se viene eseguito il salto
:* Referenced by a (U)nconditional or (C)onditional Jump at Address
:|
:00464C20(C)|
:00464CF4 81FBFC000000            cmp ebx, 000000FC
:00464CFA 0F84CE000000            je 00464DCE
:00464D00 6A30                    push 00000030
:00464D02 6A00                    push 00000000
* Possible StringData Ref from Data Obj ->"Il sistema non e' il num10g5.ass"                                  |:00464D04 68C45A5000              push 00505AC4:00464D09 8BCD                    mov ecx, ebp:00464D0B E871AD0500              call 004BFA81   pare che venga eseguito un ulteriore controllo e alla riga 00464CFA c'e' un altro   salto... il principio e' del tutto analogo al controllo già esaminato.      Il modo piu semplice per eludere il controllo del nome del file è quello   di sostituire l'istruzione di salto condizionato con una di salto    incondizionato.   Con la barra verde spostiamoci sulla riga::00464C20 0F84CE000000            je 00464CF4      sulla riga di stato c'e' un'informazione di cui dobbiamo prendere nota:   l'indirizzo assoluto dell'istruzione in evidenza: @Offset00064020.   Eseguamo la stessa operazione per l'altra riga::00464CFA 0F84CE000000            je 00464DCE   l'offset è 000640FA.Il controllo sull'nserimento massimo di 12 numeri è ancora più semplice:----------------* Referenced by a (U)nconditional or (C)onditional Jump at Address:|:00457489(C)|:0045749F 83F80C                  cmp eax, 0000000C:004574A2 7E14                    jle 004574B8:004574A4 6A30                    push 00000030:004574A6 53                      push ebx* Possible StringData Ref from Data Obj ->"Con la versione beta e' possibile "                                        ->"inserire max 12 numeri!"                                  |:004574A7 68F4565000              push 005056F4:004574AC 8BCE                    mov ecx, esi:004574AE E8CE850600              call 004BFA81-----------------Alla riga 0045749F viene comparato il contenuto di eax con il valore 0C cheguarda caso in decimale corrisponde a 12. Alla riga 004574A2 viene eseguitoun salto JLE (jump if less or equal), cioe se il registro di flag indica cheil risultato dell'ultima operazione è minore o uguale a 12. basterà forzare anche qui il salto ;)Come al solito prendiamo nota dell'offset alla riga che sarà modificata: 000568A2
4) Adesso andremo ad effettuare le modifiche sull'eseguibile:
Apriamo con HIEW il programma 'ENALOTTO.exe'.
Settiamo l'editor in modalita' "DECODE" con la sequenza dei tasti F4, F3.
Adesso dobbiamo spostarci all'indirizzo dove andremo a fare la modifica
premiamo F5 e inseriamo l'Offset di cui abbiamo preso nota 00064020.
Una volta dato l'invio saremo alla posizione desiderata.
A questo   punto ci troveremo col cursore sul codice 0F84CE000000.
Premiamo il tasto F3   e entriamo in modalita "EDIT".
premendo F2 e' possibile operare con i codici   mnemonici, penserà HIEW a sostituirli con
i corrispettivi codici HEX.
sostituiamo il "je" con un "jmp" ed il gioco e' fatto, attenzione però come si   potrà
notare i due comandi utilizzano un diveso nomero di bytes e l'editor   ha spostato a capo gli
ultimi due "00" andando ad incasinare il comado che seguiva.
Anche se in questo caso non sarebbe accaduto nulla, perche il codice sotto al   "jmp" non
verrà mai eseguito, è sempre bene lavorare ordinatamente quindi   modifichiamo
il "00" in "90" che corrisponde ad un NOP (no operation, un ciclo   a vuoto per la CPU).
premiamo F9 per rendere effettiva la modifica.
Le stesse operazioni vanno eseguite per il comando che e' all'offsett   000640FA.
Spostiamoci all'indirizzo 000568A2 qui basterà sostituire il "jle" con un "jmps"
per bypassare il controllo.   5) Usciamo da HIEW e rilanciamo ENALOTTO.
Si potrà constatare che le limitazioni   non ci sono più :))
questo è tutto!
VI INVITO A CANCELLARE IL PROGRAMMA SE NON AVETE INTENZIONE DI ACQUISTARLO!!!

Top: Sicurezza su Internet - Back
Previous: Tutorial per QUE3 di The_Dux - Up: Sicurezza su Internet - Next: Il meraviglioso mondo del CRACKING

This page last updated: Friday 08 November 2002 at 3:58pm

Please send any comments on this page to Astalalista.

Labelled with ICRA

This page is powered by Copyright Button(TM).
Click here to read how this page is protected by copyright laws.

Use this button to
NOT browser button


begin banner Exchange zone

Member of BannerPower Rotation System

Home Main Portal Translate Tell A Friend Create Page Create Site Search Site Search WWW E-mail Login Insert A Link Free for All Free Dating Forum disabled-come soon Guestbook Links Vote For Us disabled-come soon | North Carolina Group Insurance Plans | Blinds | Beaded Necklace | Jewelry Directory