Ciao ragazzi, prima di tutto ringrazio MetalMaster per il grande complimento che mi ha fatto, quasi mi commuovo
L'autore di questa guida è Predator, praticamente in tutti i siti in cui ho trovato guide sul reversing compare il suo nome. E' un mostro e questa sua enciclopedia ne è semplicemente la prova.
Putroppo devo dire che quella guida è stata scritta dall'autore in parte prendendo materiale diretto da me e in parte chiedendomi consigli...
il punto è che non sapeva reversare davvero, ha fatto un "puzzle" con una vaga congnizione di cosa scriveva.
Per citarne uno, giusto giusto nel primo esempio che propone la creazione di un crackme è incasinato e impreciso.
Avendo programmato lui stesso il crackme (e un po male) il compilatore del VB6 ha fatto quello che ha voluto.
Il programmatore voleva fare
valore*5/3
invece il compilatore ha fatto
3/5=0.6
valore=valore*0.6
pertanto nel core del keygenning noi leggiamo
Codice:
MOV DWORD PTR SS:[EBP-A4],5
MOV DWORD PTR SS:[EBP-B4],3
CALL DWORD PTR DS:[<&MSVBVM60._VbaVarDiv]
le prime due istruzioni mettono nello stack il valore 5 e il valore 3
e la funzione _VbaVarDiv (che si trova nella MSVBM60.dll) esegue 3/5 mettendo il risultato (0.6) nel terzo offset che leggi nello stack.
Il punto è che il programmatore pensava di decompilare cio' che aveva scritto, in realtà il compilatore ha fatto diverso (ottmizzando) e lui (non capendo il codice asm) invece di spiegare quello che realmente è successo ha spiegato cio' che lui ha fatto nel codice, sbagliando completamente e continuando a riportare spiegazioni sbagliate.
Sinceramente consiglio di leggere quella guida giusto per una nozione sul reversing, ma contiene materiale approsimativo e in alcuni casi errato.
Ciauzzz
Predator