CrA(ck)zz.. dolci... |
|
|
Data |
by "eTTax" |
|
|
Published by Quequero |
|
Vi dono questo "presente" : | Bravo eTTax, hai fatto un buon lavoro.....Un multi-tute oserei dire :) |
Io sono Tu sei Egli è ....... hihihihihihi |
UIC's form |
|
UIC's form |
Difficoltà |
(x)NewBies ( )Intermedio ( )Avanzato ( )Master |
Azz...guagliò...questo è il mio primo tute...e forse alla fine sarà anche l'ultimo.
Il tute riguarda 3 Crackme che ha scelto Tin.. per avviarci..nel mondo del Cracking..
dove...nop...jmp...e subboste..varie (ehm..sono
raffreddato)....consigliano di camminare strisciando il muro...e chi si ferma è
perduto....hihihihihi anzi ahi..ahi..ahi.
Introduzione |
Tools usati |
URL o FTP del programma |
Notizie sul programma |
I crackme.. non sono prg...sono solo assaggini....spiedini....suppostine...che mettono alla prova ..il c.. ehm...il crackman...(Azz... che parolona..)....verginiello.. fino alla rottura della fre....e che Azz.. vi devo dire tutto!!!...
Essay |
:00401007
mov dword ptr [00402044], eax
:0040100C push 00000030
:0040100E
push 00402079 <-- salva nello stack la caption del Nag "Crackme 1.0 ;
|
:00401013
push 0040208D <--- salva nello stack la
stringa "Plz registrate this";
:00401018
push dword ptr [00402048]
|
:0040101E
Call 004011FD <--- qui avviene la
chiamata della funz MsgBox del Nag ;
:00401023 mov dword ptr [00402000], 00004003
:0040102D mov dword ptr [00402004], 0040113D
:00401037 mov dword ptr [00402008], 00000000
:00401041 mov dword ptr [0040200C], 00000000
:0040104B mov eax, dword ptr [00402044]
:00401050 mov dword ptr [00402010], eax
:00401055 push 00007F04
:0040105A push 00000000
alla riga 0040101E c'è la chiamata che fa comparire il Nag..beh.. indossiamo camice e mascherina e cominciamo ... bisturi......divaricatore...forbici e zac...=:-) (.....ehehehe ho proprio la vocazione del chirurgo)...possiamo eliminare la call in due modi nopparla o jumparla...quello più semplice in questo caso è inserire un salto incondizionato...elimando tutta la parte di codice che interessa la call...osservando il disassemblato inseriremo il jump alla locazione 0040100C e saltare alla locazione 00401023... quindi dovremo scrivere:
:0040100C jmp 00401023
Okki... apriamo il Wdasm e carichiamo il prg... con un bel "goto code
location" inseriamo 0040100C, leggiamo nella barra inferiore l'offset
dell'indirizzo... che è 060C ora non ci resta altro che usare Hview per effettuare
le modifiche in maniera permanente nel prg. Apriamo Hview, carichiamo il prg.
Crackme1, F4 ------> Decode -----> F5 -----> F3 inseriamo l'offset
060C ------> F2 e scriviamo jmp 00000623 ...?????...Azz... direte voi
hai sbagliato!!!...l'indirizzo dove effettuare il salto è 00401023.....naaaaaaaa....
quando abbiamo premuto il tasto F3 in Hview siamo passati dalla modalità Address a
quella Offset .. chiaroooooo?... per rendere effettive la variazione di codice
premiamo il tasto F9 ed usciamo col tasto ESC.
Lanciamo il file eT...Tax!!!!!....Nagstectomia...effettuata....senza dolore...e
senza pianto (ma vi immaginate voi se i prg avessero le palle!!!!....brrrrrrrr).....Azzi
loro con tutti sti chirurghi della UIC...=;).. vabbè la seconda maniera è quella di
inserire tante istruzioni Nop fino a coprire tutti i byte della call in questo caso
dall'indirizzo 0040101E fino all'indirizzo 00401022 (5 byte di morbidezza...=;))
...hihihihihihih..Nop ..Nop..Nop...Nop...Nop...è il rumore che fa la "supposta
virtuale" quando entra.. vabbè lasciamo stare.... lanciamo il
prg...eT...Tax!!!!...programma ciulato.
Oooohhhh ...Allora ho perso un sacco di tempo a scrivere spero in maniera semplice e
dettagliata l'evirazione del Nag...d'ora in poi per gli altri Crackme sarò un pò più
sintetico... anche xchè non voglio essere "cazziato" da Que...per colpa
vostra...e poi se mi arrabbio..sò "uccelli per diabetici" ...camice.....
mascherina...eT..Tax!!!! dopo pochi secondi farete parte del gruppo musicale Bianchi per
Caso..hihihihihihi
Il secondo Crackme..... è dolce...basta un clik...ed è là che aspetta....sembra
dire...ciul...ehmmm ..un numero per favore.. solo un numero.. e poi basta...e noi lo
accontentiamo...=;)..inseriamo un numero seriale a ca(s)so..333666333 premiamo il tasto
Ok...ed ecco che appare una finestra che ha tutta l'aria di prenderci per il
culo....dandoci del luuuuzeeer... a me.. sta' figlia e zoccol' mò ti faccio vedere
io...a parte il fatto che non sò che Azz.. significa Luzer....ma da come si è presentata
la finestra equivale al classico vaffanculo!!!... e non è educato...qui è necessaria una
rieducazione immediata.... faccio una "Anteprima" sul prg e controllo le varie
funzioni che utilizza il prg, CTRL +D per entrare in Sice, dopo aver brekkato su
diverse funzioni, quella esatta è la Getwindowtextlengtha eT....Tax!!!!.. il
Sice mi poppa nella funz... premo il tasto F11 per uscire dalla call della
funzione,.controlliamo se ci troviamo nel processo del prg ...Ok..... è qui dobbiamo
stare attenti...eheheheh.. la call appena esce mi riporta una valore in Eax = 9
guarda..guarda.. la stessa lunghezza del codice seriale che ho inserito...ma andiamo
avanti per vedere cosa succede...steppiamo con F8..fino ad arrivare...
:004011A7 Call 00401247 <-------chiamata alla Api Getwindowtextlenghta;
:004011AC mov dword ptr [004020E9],
eax <-- inserisce il valore 9 di eax alla loc.
di
memoria 004020E9;
:004011B1 mov esi, eax <----- inserisce il valore 9 di eax in esi;
:004011B3 cmp esi, 0000000C <------ confronta il valore C con esi, cioè 12 con 9;
:004011B6 jne
004011D6 <------ se non è
uguale salta alla call e compare la MsgBoxe
"Wrong Serial";
:004011B8 push 00000030
:004011BA push 00402091
:004011BF push 00402097
:004011C4 push dword ptr [00402048]
:004011CA Call 00401259 <---- chiamata alla MsgBoxe " Wow!!.. Nice...ecc.ecc."
...................
:004011D6 push 00000030
:004011D8 push 004020ED
:004011DD push 004020FB
:004011E2 push dword ptr [00402048]
:004011E8 Call 00401259 <-----chiamata alla MsgBoxe "Wrong Serial"
Allora se avete osservato il disassemblato.. e siete stati attenti alle note di commento... sappiamo già cosa fare....verooooo?...anche qui possiamo.. scegliere quale metodo.. adottare... l'evirazione.......o le supposte....ehm.. nel senso che....possiamo far passare il controllo della lunghezza del codice che deve essere uguale a 12 , vedi la riga 004011b3, e quindi andiamo sul sicuro senza fare nessun intervento sul codice.. infatti se inseriamo qualsiasi Serial di lunghezza 12 caratteri comparirà sempre la MsgBoxe "Wow!!...".. l'altra possibilità è di cambiare l'istruzione jne in je alla riga 004011B6 e quindi verrà accettato qualsiasi serial tranne quello giusto... di lunghezza 12 char... Azz... anche questo prg..è ciulato.
Passiamo adesso al terzo CrackMe... eheheheheh siamo quasi alla fine...lanciamo il prg......naaaaaaaaa...anche qui...cerca un seriale da inserire (.ehehehehehe..Tin....è molto buono..è il Papi....della UIC e noi i suoi piccoli pUICcini)..anche qui come per il CrackMe2.. stesso modo di operare...inseriamo il serial... premiamo OK...eT...Tax!!!! ci compare la pallosa finestra con la scritta "Wrong Code"...vuoi vede' che la tecnica è la stessa del CrackMe2?... cioè il prg.. effettua un check sulla lunghezza dei caratteri del serial... CTRL+D... andiamo in Sice.... Bpx Getwindowtextlengtha .... CTRL+D per uscire dal Sice... clikkiamo sul prg.. inseriamo un seriale a ca(s)so ...333666333... eT....Tax!!!... Sice ci butta dentro la funzione.... un bel F11 per uscirne fuori...e ci troviamo nell'istruzione successiva alla call. linea 004011B6...controlliamo se ci troviamo nel codice del programma...guardiamo la linea verde in basso del Sice.. Ok... CrackMe3!CODE+01B1...cominciamo a steppare con F10....
|
:004011B1
Call 00401279
:004011B6
mov esi, eax <----- eax contiene la lunghezza
dei caratteri
del serial inserito e lo inserisce in esi; esi=9;
:004011B8
cmp esi, 00000012 <---- confronta esi con il valore 12h
18 nella notazione decimale;
:004011BB
jne 0040121C <----- se non è uguale salta
all'indirizzo 0040121C e
chiama la MsgBoxe "Wrong Code";
hihihihihihihi......lo stesso controllo del precedente Crackme.. cambia solo la
lunghezza del seriale ... vuoi vedere che se inserisco la lunghezza giusta...ciulo anche
sto Crackme?... esco dal Sice.... inserisco il seriale di lunghezza 18 char... eT..Tax!!!
.mbè..... che Azz... succede...compare nuovamente la MsgBoxe "Wrong
Code"...quasi a dire...Stronzo!!!...a me ..sta figlia e zoccol'.. e mò ti faccio
vedere io.. CTRL+D entro in Sice.. bpx getwindowtextlengtha inserisco il serial di 18
char... clikko su Ok... e poppetee... entriamo in Sice... F11.. per uscire dalla call .. e
cominciamo a steppare...quando arriviamo alla riga 004011BD il registro ebx.. punta
alla locazione di memoria 00402098 per vedere cosa c'è in questo indirizzo
digitiamo il comando d 00402098, qui troviamo il nostro serial
inserito...333666333666333666... quindi confronta il primo char del serial con il numero
46 in esa...70 in decimale, lettera "F" in Ascii...se non è uguale salta
all'indirizzo 0040121C dove compare la MsgBoxe "Wrong Code"...uhmmmm...quindi il
prg.. effettua un secondo check sul seriale...che deve essere uguale ad una sequela di
char..predefiniti...e vediamoli quali sono...
:004011BD cmp byte ptr
[ebx], 46 <--confronta
il 1° char del seriale con 46h,
70 decimale, lettera "F" ascii;
:004011C0 jne
0040121C <-- se non è uguale salta alla MsgBoxe
"Wrong Code";
:004011C2 cmp byte ptr [ebx+01], 69 <-- 2° char = 'i'
:004011C6 jne 0040121C
:004011C8 cmp byte ptr [ebx+03], 72 <-- 4° char = "r"
:004011CC jne 0040121C
:004011CE cmp byte ptr [ebx+04], 65 <-- 5° char = "e"
:004011D2 jne 0040121C
:004011D4 cmp byte ptr [ebx+06], 57 <-- 7° char = "W"
:004011D8 jne 0040121C
:004011DA cmp byte ptr [ebx+07], 6F <-- 8° char = "o"
:004011DE jne 0040121C
:004011E0 cmp byte ptr [ebx+08], 72 <-- 9° char = "r"
:004011E4 jne 0040121C
:004011E6 cmp byte ptr [ebx+0A], 78 <-- 11° char = " x"
:004011EA jne 0040121C
:004011EC cmp byte ptr [ebx+0C], 53 <-- 13° char = "S"
:004011F0 jne 0040121C
:004011F2 cmp byte ptr [ebx+0D], 75 <-- 14° char = "u"
:004011F6 jne 0040121C
:004011F8 cmp byte ptr [ebx+10], 78 <-- 17° char = "x"
:004011FC jne 0040121C
:004011FE push 00000030
:00401200 push 0040207F
:00401205 push 0040208B
:0040120A push dword ptr [00402048]
:00401210 Call 00401285 <-- call della MsgBoxe "Right Code!"
:0040121C
push 00000030
|
:0040121E
push 004020C0
|
:00401223
push 004020D1
:00401228 push dword ptr [00402048]
|
:0040122E
Call
00401285 <-- call della MsgBoxe "Wrong Code"
quindi il seriale giusto di 18 caratteri è Fi_re_Wor_x__Su__x_ al
posto del carattere "_" potete inserire qualsiasi carattere. l'importante
è rispettare le posizione..dei char. Okkiiiiiiiiii......eddaiiiiii... fatemelo dire per
l'ultima...volta...usciamo dal Sice...inseriamo il seriale Fi_re_Wor_x__Su__x_
eT.....Tax!!!!.... programma ciulato.... godooooooooooooooooo!!!!!!!
Guagliò... che sudata...faccio fatica ad alzarmi.. le palle sò diventate di una
circonferenza tale che le angurie al confronto sembrano confettini di... non dico la
marca...hihihihihihi..... Azz... faccio fatica.. pure a camminare.. uè... vuoi vedè che
le supposte.. sò finite nel posto...... sbagliato!!...=:)..Azz..la prox.. volta cambio
titolo al tute...meglio proteggersi...con.. Azz... ma vi devo dire proprio
tutto!!!!.....;o))))).
|
Non so... se sono stato chiaro...non so se ho detto stronzate...non so..se Que e Tin sono umani....non so perchè nel chan di Crack-it.. quando entro mi ci ritrovo sempre da solo ...(azz.. soffro di vittimismo virtuale..hihihihih), a furia di scrivere sto tute non sò nemmeno chi sono e come mi chiamo... sò solo che grazie alla UIC ..dopo anni.. di dure ricerche...ho trovato...quello che cercavo...(azz..meglio finirla qui)..voglio salutare.. Nerds, ph0bos.., GuZ.., ...AndreaG, Anarkia e tutti gli amici del chan Crack-it...;)
Disclaimer |