[size=x-large]Mini Tutorial:[/size]
Aprite l'eseguibile in Olly
Premete tasto destro e scegliete:
Search For -> all commands
ricerchiamo questo comando
CALL DWORD PTR DS:[ECX+8C]
che cosa serve? guardate bene il comando assembler, contiene un valore molto importante... ed è una COSTANTE!
si tratta di
[ECX+8C]
è la costante che si occupa di abilitare o disabilitare controlli in visual basic.
pertanto con questa ricerca troveremo tutti i comandi relativi alla funzione
Enabled = true/false
in questo crackme sono 3:
Codice:
[b]Found commands:
00402C3C CALL DWORD PTR DS:[ECX+8C]
00402C89 CALL DWORD PTR DS:[ECX+8C]
00402FB0 CALL DWORD PTR DS:[ECX+8C][/b]
facciamo doppio click sul primo (00402C3C) e vediamo
Codice:
00402C37 PUSH [b]-1[/b]
00402C39 PUSH EAX
00402C3A MOV ECX, DWORD PTR DS:[EAX]
00402C3C CALL DWORD PTR DS:[b][ECX+8C][/b]
poco piu' su possiamo notare PUSH -1 che equivale a ABILITA
guardiamo il secondo (00402C89):
Codice:
00402C84 PUSH [b]ECX[/b]
00402C85 FSTP DWORD PTR SS:[ESP]
00402C88 PUSH EAX
00402C89 CALL DWORD PTR DS:[b][ECX+8C][/b]
in questo caso invece di PUSH -1 abbiamo PUSH EAX, questo significa che il sorgente prevede una variabile. Questo potrebbe assumere enabled=true o false a secondo dei casi.
ma vediamo il terzo(00402FB0)
Codice:
00402FAB PUSH [b]0[/b]
00402FAD PUSH EAX
00402FAE MOV ECX, DWORD PTR DS:[EAX]
00402FB0 CALL DWORD PTR DS:[b][ECX+8C][/b]
come vedete qui c'è
PUSH 0 questa è una costante e significa FALSE! l'abbiamo trovato.
Per abilitare il tasto ci sono 2 modi o mettere -1 al posto di 0 oppure noppare l'istruzione all'offset 00402FB0
dato che tutti i controlli di default sono abilitati, noppando la call impediremo la disabilitazione.
Chiaro?
Le difficoltàerano date dal fatto che ho codato tutti i controlli a runtime pertanto non ci si poteva appoggiare a nessun tools.
ma seguendo le istruzioni che vi ho scritto questo crackme si risolve in circa 30 secondi.
Predator