|
Strana gente! |
||
|
Data |
by "syscalo" |
|
|
12/04/2001 |
Published by Quequero |
|
|
|
Syscalo come sempre è precissimo e chiaro, ma perchè non mi mandi qualche tutorial in più??? |
|
|
.... |
|
.... |
|
Difficoltà |
(x)NewBies ( )Intermedio ( )Avanzato ( )Master |
|
Volete sapere cosa stò facendo? Continuate a leggere ;-p
|
Introduzione |
|
Tools usati |
|
URL o FTP del programma |
|
Essay |
L'intento di questo tutorial è di darvi lo spunto per qualcosa di nuovo, quindi non mi metterò a spiegarvi come intercettare le chiamate alla lettura del registry o l'intercettazione delle msgbox; tutte queste cose sono state trattate negli altri tutorial!
L'unica cosa che verrà vista disassemblando è la parte dei puntatori a funzione.
Un'ultima cosa: quello che dovreste fare voi è capire come funziona il programma, come gioca con le chiavi del registry, e come vengono utilizzati i puntatori a funzione, ovviamente senza leggere il codice sorgente ;-p
Ed ora la parte interessante del disassemblato:
Questa è la funzione principale del programma; qui ho inserito un piccolo controllo che potrebbe darvi qualche ispirazione sull'uso dei puntatori a funzione per proteggere i vostri programmi.
Le condizioni per fare in modo che il programma si complimenti con voi le potete leggere nel sorgente e confrontarle con il codice disassemblato.
Per tutto il resto metto il codice sorgente C. Se non conoscete il C non preoccupatevi, il codice è ben commentato.
Le stringhe utilizzate nel programma sono lasciate tutte in chiaro, e non sono stati usati trucchi o inganni, proprio perchè lo scopo del programma non è di essere crackato, ma di essere analizzato! Poi ognuno può fare quello che vuole.
La cosa è molto semplice: se il puntatore della funzione da eseguire è uguale alla funzione che indica che siete riusciti a fregare il programma, viene ricontrollata la condizione di verifica sul valore letto dal registry; se questo non combacia vuol dire che qualcuno a manomesso il programma e quindi noi reagiamo a dovere ;-)
sub_401606 proc near
push ebp
mov ebp, esp
push edi
call sub_40144B
call sub_40150F
lea edi, ds:4013E4h
cmp dword_402040, edi
jnz short loc_401642 ; se non è la funzione che indica che siamo bravi... (A)
push offset aCrked
push offset unk_402050
call j_strcmp ; altrimenti controlla anche la condizione sul valore letto dal registry
add esp, 8
cmp eax, 0
jz short loc_401642 ; se è verificata allora è tutto a posto... (A)
push 0
push 6
call j_ExitWindowsEx ; altrimenti reagiamo di conseguenza ;-)
loc_401642:
call dword_402040 ; (A) ...prosegue normalmente con la funzione assegnata al puntatore
xor eax, eax
pop edi
pop ebp
retn 10h
sub_401606 endp
Ed ora la parte della scelta; casualmente ;-p l'indirizzo a cui viene assegnata la funzione da eseguire è lo stesso della call a loc_401642.
loc_4015A3:
push offset aCrked
push offset unk_402050
call j_strcmp
add esp, 8
cmp eax, 0
jnz short loc_4015C8
lea edi, ds:4013E4h ; copia l'indirizzo della funzione da assegnare in un registro
mov dword_402040, edi ; copia il valore nella variabile all'indirizzo 402040
jmp short loc_4015F9
loc_4015C8:
lea edi, ds:4013F8h
mov dword_402040, edi ; e così fa qui
jmp short loc_4015F9
loc_4015D6:
cmp dword_402048, 0
jz short loc_4015ED
lea edi, ds:40140Ch
mov dword_402040, edi ; e così fa qui
jmp short loc_4015F9
loc_4015ED:
lea edi, ds:4013F8h
mov dword_402040, edi ; e così fa qui
loc_4015F9:
push dword_40203C
call j_RegCloseKey
pop edi
retn
sub_40150F endp
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include
|
Note finali |
Questo tutorial è dedicato a voi per salvarvi dal tentativo di AndreaGeddon di diventare il dominatore assoluto dell'umanità.
Con i suoi tutorial e le partite a bowling ;-p vuole sostituirsi a Quequero per arrivare infine a prendere il posto dell'Eccelso!!!
Cambiate strada fino a che siete in tempo!
|
Disclaimer |
Qualunque azione punitiva del mio caro amico AndreaGeddon (ciao Andreuzzo ;-p) nei miei confronti è da considerarsi come conferma delle mie affermazioni.
Quindi andrea se non vuoi che l'Eccelso se la prenda con te non puoi farmi niente hihihi