Keygenniamo Melody Raiser | ||
Data |
by ev0 |
|
15/06/2005 |
Published by Quequero | |
THE HIGHEST KNOWLEDGE IS TO KNOW THAT WE ARE SURROUNDED BY MYSTERY |
Grazie evo, sintetico ed efficace! |
THE HIGHEST KNOWLEDGE IS TO KNOW THAT WE ARE SURROUNDED BY MYSTERY |
Those who are able to adapt and change
in accord with the enemy and achieve victory are called divine... |
|
Those who are able to adapt and change
in accord with the enemy and achieve victory are called divine... |
Difficoltà |
(X)NewBies ( )Intermedio ( )Avanzato ( )Master |
Introduzione |
Tools usati |
URL o FTP del programma |
Essay |
Apriamo il caro DeDe visto che il programma è in
delphi e andiamo a cercare la Form Regist e apriamo l'evento
ButtonOkClick.
Scendiamo giù con il cursore e vediamo:
|
Apriamo il debugger e settiamo un break point sulla
call, dumpiamo eax (d eax) e vediamo che in eax viene messo il nostro
seriale,
la call seguente sicuramente è quella del calcolo, subito dopo un
bel test al,al cosa significa questo?
vede se al è 1 se lo è salta a "Ok il
prezzo è giusto" altrimenti il seriale non è quello giusto,
soluzione?
entrare nella call... alla fine
della stessa troviamo:
|
modifichiamo il mov al, byte ptr [esp+$08] a 00466C94
in mov al,01 e il gioco è fatto il programma dirà
bravoooooo ti sei registratoooo. Ma noi vogliamo qualcosa di più :>
(piccola parentesi tutti i programmi
di Ojima possono essere crackati così...
anche l'algoritmo della key
generation è uguale cambia solo un numerino... ^__^)
Se provate vedrete che dopo tre volte che proviamo
a inserire il seriale chiude il programma,
risolviamo velocemente questo
problema noppando un fastidioso inc: passiamo oltre la call e andando
più
avanti notiamo immediatamente un inc seguito da un cmp, noppiamo senza pensarci
due volte.
|
Ritorniamo alla nostra call, un veloce sguardo all'interno della stessa ci fa subito capire che il seriale è di sette caratteri, un punto in più per noi
adesso apriamo il debugger, e giriamo un pò per la
call, arrivando alla fine dovreste esservene accorti anche
voi cosa fa hehehe
vi ricordo che in edx abbiamo il valore 0x02, questa è la call disassemblata e commentata:
|
Vediamo un'attimo come funziona queta routine, siamo
reverser giusto? e allora partiamo dalla fine confronta
gli ultimi due caratteri del
seriale (infatti ESI prima viene messo come 6 e poi viene incrementato e
confrontato
con 8, quindi 2 caratteri)
Abbiamo visto che vengono fatti 2
cicli nel loop: ESI-1 sarà prima 5 (quindi il
sesto carattere del seriale)
e poi 6 (quindi il settimo) qui:
|
questo significa
che i primi 5 caratteri del seriale possono essere qualsiasi cosa, mentre gli
ultimi 2 vengono calcolati sui primi 5.
Calcola il primo ma lo calcola
prendendo il "numero corrispondente al carattere nella stringa magica, quindi se
è A sarà 1 se è B sarà 2 etc, poi fa un ciclo per vedere a quale dei caratteri
corrisponde e mette il "numero" corrispondente in EDI, in seguito lo confronterà
con quello che viene calcolato.
Keygen? bè se siete arrivati fin qui e avete capito
quello che ho scritto... lo sò non sò scrivere
(in fondo è il mio primo tutorial!)
dovreste riuscire a fare un keygen.
Comunque c'è il sorgente, ancora più incasinato del tutorial
INVOKE GetDlgItemText, hWnd, IDC_NAME, ADDR
sName, SIZEOF sName cmp eax, 05h jne ValidityError ; Generation
routine shr edx, 5 mov esi, 0000006h
|
Se notate la differenza tra il codice è minima
(infatti si può rippare l'asm) adesso, vi chiederete, ma dove ha messo il
loop?
L'ho tolto, "copiando" due volte le istruzioni che lo compongono, visto
che viene ripetuto due volte...non è una bella soluzione
ma almeno è pratica in mezzo hai due ovviamente
ho rimesso le cose "a posto" inserendo due righe di codice per sistemare il
tutto mettendo il contenuto dei registri come dovrebbe effettivamente stare.
shr edx, 5
mov esi, 0000006h |
Buon divertimento! E non ridete troppo a vedere il sorcio del keygen è il primo che ho scritto finora.
Note finali |
Credo sia stato un buon esercizio di keygenning
abbastanza facile.
Saluto GeO, Syxtem
(ehehehe te lo ricordi ancora il tutorial che scrivesti per me?)
Il que che
si impegna a mantenere un sito importante come questo, il geddone, ntos,
active85k, e tutti gli
altri schizzati di
#crack-it, e immancabilmente BlackDemon.
un ringraziamento particolare a Counterwood per il template del keygen
Disclaimer |
Vorrei ricordare che il software va comprato e non rubato, dovete registrare il vostro prodotto dopo il periodo di valutazione. Non mi ritengo responsabile per eventuali danni causati al vostro computer determinati dall'uso improprio di questo tutorial. Questo documento è stato scritto per invogliare il consumatore a registrare legalmente i propri programmi, e non a fargli fare uso dei tantissimi file crack presenti in rete, infatti tale documento aiuta a comprendere lo sforzo che ogni sviluppatore ha dovuto portare avanti per fornire ai rispettivi consumatori i migliori prodotti possibili.
Reversiamo al solo scopo informativo e per migliorare la nostra conoscenza del linguaggio Assembly.