Come Crackare WinZip 7.0
Come Crackare WinZip 7.0
Thursday 4th of March 1999
Scritto da
--==--==--==--
-=[CerberuS]=-
==--==--==--==
Ciao e benvenuto al mio quarto tutorial. Questo è relativo al crackare Winzip 7.0. Ci sono due modi per farlo: Rimuovere la finestra di controllo del numero seriale, o (meglio) trovare il guisto numero seriale. Inizierò con l’elencare i programmi richiesti e dove trovarli.
Richiesto:
· Soft-Ice per Windows 3.23
· HView 6.00
Puoi trovarli entrami nella homepage del Crackstore (http://www.crackstore.com/).
· Trovare il giusto numero di serie:
Ogni programma con un controllo di numero di serie ha un punto debole. Il crackatore si deve concentrare su questo punto. Un semplice confronto, tra il seriale inserito e quello giusto. Puoi trovare il confronto (in inglese: compare) con Numega Soft-Ice. Il miglior debugger disponibile attualmente.
Prima di tutto controlla che WinICE sia caricato. Nell’Autoexec.Bat dovresti trovare la seguente linea:
[Path]\WinICE.EXE
Questo è un programma DOS, che è residente(TSR) e appare quando richiesto.
Carica WinZip con “Symbol Loader”, che puoi trovare nella cartella di Soft-Ice. WinZip appare, perché il programma viene caricato in memoria con “Symbol Loader”. Esci da Soft-Ice. Questo può essere fatto premendo [F5]. Winzip comincia a girare e vedrai la schermata come in fig.1.
+----------------------------------------------------+
| THANK YOU FOR TRYING WINZIP! |
| |
| This is a fully functional...this notice. |
| |
| You can order...www.winzip.com |
| |
| [View Evaluation License] [Enter Registration Code] |
| |
| I understand...registration fee |
| |
| [I Agree] [Quit] [Ordering Info] |
| |
+----------------------------------------------------+
Come ti potrai immaginare, devi premere il pulsante[Enter Registration Code]. La seguente schermata appare:
+----------------------------------------------+
| If you paid the WinZip registration fee: |
| ... |
| ... |
| ... |
| ... |
| |
| Name : [ ] |
| Registration #: [ ] |
| |
+----------------------------------------------+
Inserisci un nome e un codice di registrazione. Io ho scelto “Cerberus” e “123321”. E’ bene usare testi di differente lunghezza, percè questo ci resterà utile quando identificheremo la stringa. Come tutti sanno Windows lavora con le DLL(Dinamic Linked Library – Librerie Collegate Dinamicamente). In queste DLL puoi trovare alcune funzioni comuni, come le MessageBox:
Puoi identificare una MessageBox dall’icona alla sinistra del testo(questo non è sempre vero NDLLS):
Ma anche alcune funzioni invisibili, come il controllo dello spazio libero su un drive, o il recupero del testo scritto in una casella di testo(textbox). Ti elenco le più importanti funzioni e il loro utilizzo:
Funzione Risultato
GetDiskFreeSpaceA Ritorna lo spazio libero di un drive
GetDiskFreeSpaceExA Ritorna lo spazio libero di un drive
GetDiskFreeSpaceExW Ritorna lo spazio libero di un drive
GetDiskFreeSpaceW Ritorna lo spazio libero di un drive
GetDriveTypeA Ritorna il tipo di drive (Hard Disk, Floppy, CD-Rom)
GetDriveTypeW Ritorna il tipo di drive (Hard Disk, Floppy, CD-Rom)
GetVolumeInformationA Ritorna il nome del volume
GetVolumeInformationW Ritorna il nome del volume
lstrcmp Confronta una stringa
lstrcmpA Confronta una stringa
lstrcmpW Confronta una stringa
DialogBoxParamA Crea una finestra di Dialogo
MessageBoxA Crea una MessabeBox
MessageBoxW Crea una MessabeBox
GetDlgItemTextA Legge il testo di una casella di testo
GetWindowTextA Legge il testo di una casella di testo
Table 1: Alcune tra le funzioni più importanti
Quando lavori con un programma a 16 bit, la “A” deve essere esclusa dalla funzione. Quindi “MessageBoxA” diventa “MessageBox”. Ma come fare a riconoscere la differenza? Ci sono molti modi per farlo, ma ne descriverò due in particolare. Un primo modo è di selezionare il file, click di destro, lanciare il programma QuickView(un utility Microsoft freeware, mi sembra NDLLS). La prima linea di testo di dice che tipo di programma è. Il secondo modo è disassemblare il file. Questo può essere fatto con W32DASM. Se gli offset sono di quattrocaratteri(da 0-9 e da “A” a “F”) allora è un programma a 16 bit o un programma DOS, se ci sono otto caratteri è a 32 bit. Quando carichi Soft-Ice lo puoi riconoscere nello stesso modo. Puoi dire a Soft-Ice quando deve apparire per bloccare l’esecuzione di una funzione(breakpointing). Questo può essere fatto con “BreakPoint on eXecution”:BPX function.
Per es:
BPX GetDlgItemTextA.
Prima di tutto cerchiamo di vedere se il programma è a 16 o 32 bit. Carica il programma in Soft-Ice e controlla il numero di caratteri dopo i due punti(“:”). OK, sono 8.
Vai in Soft-Ice e digli che deve apparire quando il programma vuole leggere il testo dalla textbox:
BPX GetDlgItemTextA
BPX GetWindowTextA
Esci da Soft-Ice premendo [F5].
Premi [OK].
Soft-Ice appare subito.
Soft-Ice si ferma alla prima istruzione della funzione. Visto che questa istruzione non è specifica del programma, non troverai la protezione qui. Torna al programma originale premendo [F12] finchè non vedi nella finestra del codice il programma su cui stai lavorando. ‘EAX’ contiene la lunghezza della stringa che hai inserito. Ed è uguale allo username. Quindi esci da Soft-Ice e Torna subito in Soft-ICE. Premi [F12] di nuovo diverse volte.’EAX’ ora è uguale alla lunghezza del numero di serie inserito. Non abbiamo più bisogno dei primi breakpoint quindi possiamo disabilitarli con “BD *”. Il testo che hai inserito è posizionato in memoria e l’unica cosa da fare è cercarlo. Puoi cercarlo con l’istruzione “S”. Scrivi:
S CS:0 L FFFFFFFF «123321»
^ ^ ^ ^ ^ ^-> il numero seriale che hai inserito
| | | | -> L’ultimo offset da cercare
| | | -> Parte standard ell’istruzione
| | -> Il primo offset da cercare
| -> Il segmento dove cercare
-> Istruzione
Troverai qualcosa dl genere(vista la strana natura della memoria i tuoi numeri saranno probabilmente differenti!):
Pattern found at 015F:0047D958 (testo trovato alla posizione…)
Ecco dove vogliamo lavorare. Diciamo a Soft-Ice che deve apparire quando il programma accede a questa locazione. Questo può essere fatto con l’istruxione “BPM”. Devi sapere la differenza tra “BPM” e “BPX”. “BPM” è per le locazioni di memoria, usato normalmente per i breakpoint sulle variabili, “BPX” è per le locazioni fisiche, per trovare le chiamate nel programma su disco.Scrivi:
BPM 015F:0047D958
^-> Inserisci qui l’offset trovato!
Ora, quando un programma vorrà fare qualcosa con questa locazione, Soft-Ice apparirà.Usciamo da Soft-ICE e vediamo quando apparirà
Prima la locazione di memoria in [ECX] viene mossa in EAX. Nessun confronto…
Esci da Soft-Ice di nuovo.
Poi la locazione di memoria in [ESI] è confrontata il byte finale della stringa(00h). Nemmeno questo è buono…
Esci da Soft-Ice di nuovo.
Poi [EDX] con lo spazio byte(20h). Ancora non è buono…
Esci da Soft-Ice di nuovo.
Poi [ESI] con la byte finale della stringa 00h. Non è buono…
Esci da Soft-Ice di nuovo.
[ESI] è spostato in AL,[EDI] è spostato in AH e poi queste locazioni sono confrontate. Uno di questi è il nostr, quindi l'’ltro deve essere il codice corretto! Vai alla locazione "MOV AL, [ESI]"
con [F10]. Controlla l’offset con “D ESI”. Questo è il tuo seriale. Poi controlla alla locazione di memoria di [EDI] con “D EDI”. Nella scheramata dati(DATA screen) puoi vedere un numero che sembra un seriale. Il mio era “8D9F0c20”. Se non puoi trovare lo schermo, scrivi “wd”. Se nessuna schermata è stata aggiunta ma un’altra è stata tolta, ripeti l’istruzione e controll attentamente le schermate. Disabilita tutti i breakpoint o Soft-Ice continuerà ad apparire e non non lo vogliamo “bd *”.
Esci da Soft-Ice e scrivi il giusto numero di serie nella casella di testo. Premi OK, e sei registrato! Molto semplicemente.
Exit Soft-Ice and type the found correct serial in the serial-number box. Press [OK] and it’s registered! You see very simple!
· Rimuovere la schermata di controllo del numero di serie.
Ad essere onesti non ne parlerò qui, perché un mio amico, Acid FReDDY, mi ha chiesto di rimuoverla per lui, ma ho avuto il risultato sgradito di non poter più aprire i file zip. Non mi chiedete perché, soltanto non funziona. Se volete sapere come fare, comunque, contattatemi.
E comunque, per altre domande e commenti, mandate una e-mail(in inglese):
Cerberus_x@hotmail.com
Ecco qui. Spero tu abbia imparato(molto) da questo testo e in caso contrario, non esitare a contattarmi!
Saluti,
Cerberus
Liberamente tradotto e commentato da littlelostsoul@hotmail.com