ΙΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝ» Ί Keygen de FlyingFox Ί ΘΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΌ Intro ~~~~~ Tools: Sice, TASM ~~~~~~ Dispo: www.download.com ~~~~~~ Faire un keygen ~~~~~~~~~~~~~~~~~~~ Lancez Flying fox allez dans l'option Register, rentrez votre nom posez un bpx getdlgitemtexta dans SoftICE et commencez a rentrez votre serial, des le premier char entre softice break, faites F5 une fois puis faites une backtrace (F12)jusqu'a arriver a : xxxx:0040BA91 FF15CC724800 Call dword ptr [004872CC] << Call GetDlgItemTexta xxxx:0040BA97 8D8500FFFFFF lea eax, dword ptr [ebp+FFFFFF00] xxxx:0040BA9D 50 push eax xxxx:0040BA9E E82EFFFFFF call 0040B9D1 << Call vers le serial qu'on execute avec F8 ;) Faites F8 pour executer le call 40B9D1. xxxx:0040B9D1 56 push esi xxxx:0040B9D2 8B742408 mov esi, dword ptr [esp+08] << Notre nom dans esi xxxx:0040B9D6 57 push edi xxxx:0040B9D7 BF89F20400 mov edi, 0004F289 << Valeur de depart de edi xxxx:0040B9DC 8A06 mov al, byte ptr [esi] << Valeur ascii de esi dans al xxxx:0040B9DE 84C0 test al, al << Al = 0, si oui la routine est finie xxxx:0040B9E0 7420 je 0040BA02 << Et on degage xxxx:0040B9E2 0FBEC0 movsx eax, al << Sinon on continue et on met al dans eax xxxx:0040B9E5 50 push eax << ... xxxx:0040B9E6 E83DFE0600 call 0047B828 << No Use :) xxxx:0040B9EB 50 push eax << ... xxxx:0040B9EC E8B0FFFFFF call 0040B9A1 << No Use xxxx:0040B9F1 59 pop ecx << ... xxxx:0040B9F2 59 pop ecx << ... xxxx:0040B9F3 E8B3FFFFFF call 0040B9AB << les valeurs des registres peuvent etre un serial xxxx:0040B9F8 E8AEFFFFFF call 0040B9AB << Deux fois le meme call c'est suspect :) xxxx:0040B9FD 03F8 add edi, eax << Hehe plus de doutes ;) xxxx:0040B9FF 46 inc esi << On passe a la lettre suivante xxxx:0040BA00 EBDA jmp 0040B9DC << On recommence la routine Il est tres probable qu'en 40B9AB il y est une routine dont le resultat est contenu dans eax et ensuite ajoute a edi qui vaut initialement 0x4F289, a la fin de la routine edi sera alors notre serial. On execute donc le call 40B9AB avec F8 et en effet ca ressemble bien a une routine de generation de serial: xxxx:0040B9AB 8B0D84BD4900 mov ecx, dword ptr [0049BD84] << Les resultats precedents xxxx:0040B9B1 8BC1 mov eax, ecx << ecx dans eax xxxx:0040B9B3 8BD1 mov edx, ecx << ecx dans edx xxxx:0040B9B5 3514ED98AF xor eax, AF98ED14 << Peti xor xxxx:0040B9BA 81F2343C5498 xor edx, 98543C34 << Peti xor 2 xxxx:0040B9C0 0FAFC2 imul eax, edx << multiplie eax et edx xxxx:0040B9C3 81F1A59B8CDA xor ecx, DA8C9BA5 << 3eme xor xxxx:0040B9C9 03C1 add eax, ecx << On ajoute le tout a eax xxxx:0040B9CB A384BD4900 mov dword ptr [0049BD84], eax << on met eax dans un buffer pour la prochaine fois xxxx:0040B9D0 C3 ret << on retourne d'ou on vient Bon bah ca va pas etre tres complique de faire le keygen il suffit de recopier les operations du call dans notre routine, voici le code du keygen en asm key proc, Nom :dWord, Taille :Dword uses edi, ebx xor ebx, ebx mov esi, Taille mov edi, 4F289h xor edx,edx xor ecx, ecx mov eax, Nom NextCar: movzx ebx, byte ptr [eax] mov eax, ebx mov ecx, ebx mov edx, ebx xor eax, 0AF98ED14h xor edx, 98543C34h imul eax, edx xor ecx, 0DA8C9BA5h add eax, ecx mov ebx, eax mov eax, ebx mov ecx, ebx mov edx, ebx xor eax, 0AF98ED14h xor edx, 98543C34h imul eax, edx xor ecx, 0DA8C9BA5h add eax, ecx mov ebx, eax add edi, ebx inc Nom mov eax, Nom dec esi jne NextCar mov eax, edi ret key EndP Le resultat est dans edi mettre "%lu" pour le wsprintfa . Kahel - kahel@milliardaires.com