> CraCk Me n.1 Di
active85k:SoLuTiOn < Realizzato da NoRpiUs
ToOLz
uTiLiZzATi: - Debugger ( Olly Dbg
)
SpiEgaZiOnE: Oh la', non ho un kazzo da fare cosi mi son messo dietro a
far qualche crack me mentre ascolto i grandissimi Lacuna Coil. Perfetto,
cominciamo. Scopo di questo programma naturalmente non e' quello di patcharlo ma
di creare un generatore di chiavi. Apriamo il debugger e mettiamo un bp su
GetDlgItemTextA, mettiamo user e pass a caso e il debugger poppa:
CALL <JMP.&USER32.GetDlgItemTextA> ; prende il nome XOR
ECX,ECX ; azzera ecx LEA EAX,DWORD PTR
DS:[40300F] ; carica in eax
l'user PUSH
EAX ; e pusha eax nello stack
Ciclo: MOV BL,BYTE PTR DS:[ECX+EAX] ; mette in bl la prima lettera dell'user CMP
BL,0 ; controlla se il nome e' finito JE SHORT
CM01.00401085 ;
se si, esce XOR
BL,10 ; xora bl con 10h (16 decimale) ADD
BL,CL ; adda cl a bl (che e' un contatore) MOV BYTE
PTR DS:[ECX+EAX],BL ;
mette bl nel nome alla posizione di ecx INC
ECX ; aumenta ecx di 1 JMP
Ciclo ; jumpa a inizio ciclo
In questo ciclo prende ogni lettera del nome, la
xora con 16, il risultato lo somma a ecx ( che e' un contatore, cioe' a ogni
ciclo aumenta di 1) e dopo quello che risulta in queste operazioni lo mette al
posto della lettera presa. Dopo il programma prende il seriale e fa degli altri
calcoli ma non ci interessano, visto che alla fine il risultato di quei calcoli
deve essere uguale al risultato dei calcoli che fa col nome, quindi scriviamoci
il nostro keygen finale e basta:
#include <stdio.h> #include
<string.h>
main() {
int i, lun, serial = 0; char
*nome;
printf("Scrivi un nome: "); scanf("%s",nome);
lun
= strlen(nome); printf("Il serial e': "); for ( i = 0; i < lun;
i++) { serial = 0; serial += nome[i]; serial ^=
16; serial += i; printf("%c",serial); } }
Ok, eccoci alla fine... comunque questo e' un
keygen che non funzia con tutti tutti i nomi.. perche' ogni tanto escono fuori
delle lettere un po' strambe che in dos sono in un modo e in asm in un altro..
cmq con dei nomi non troppo lunghi la soluzione e' sempre giusta.
Byez.
|