ษอออออออออออออออออออออออออออออออออออป บ Keygen de WhereIsIp บ ศอออออออออออออออออออออออออออออออออออผ 1๘) Intro ~~~~~~~~~ Tools: Sice, Tasm ~~~~~~ Dispo: www.Download.com ~~~~~~ 2๘) Faire un Keygen ~~~~~~~~~~~~~~~~~~~ Pas besoin de chercher de serial avant de faire un keygen, l'algo est directement sur notre route, Lancez le prog, rentrez des infos bidons, posez un bpx hmemcpy et enregistrez vous. SoftICE Break, une fois F5, F12 jusqu'a rentrer dans le code du prog, on arrive la: :0046E8CB E8A8EDFBFF call 0042D678 :0046E8D0 8B45C0 mov eax, dword ptr [ebp-40] << notre nom dans eax :0046E8D3 8D55C4 lea edx, dword ptr [ebp-3C] << notre serial dans edx :0046E8D6 E81999F9FF call 004081F4 :0046E8DB 837DC400 cmp dword ptr [ebp-3C], 00000000 << serial vide? :0046E8DF 7520 jne 0046E901 << si oui => Go outside :0046E8E1 B83CEB4600 mov eax, 0046EB3C :0046E8E6 E8E91BFEFF call 004504D4 :0046E8EB 8B45FC mov eax, dword ptr [ebp-04] :0046E8EE 8B80DC020000 mov eax, dword ptr [eax+000002DC] :0046E8F4 8B10 mov edx, dword ptr [eax] :0046E8F6 FF92B0000000 call dword ptr [edx+000000B0] :0046E8FC E9A2010000 jmp 0046EAA3 :0046E901 33F6 xor esi, esi :0046E903 8D95BCFEFFFF lea edx, dword ptr [ebp+FFFFFEBC] :0046E909 8B45FC mov eax, dword ptr [ebp-04] :0046E90C 8B80D8020000 mov eax, dword ptr [eax+000002D8] :0046E912 E861EDFBFF call 0042D678 :0046E917 8B95BCFEFFFF mov edx, dword ptr [ebp+FFFFFEBC] :0046E91D 8D85C0FEFFFF lea eax, dword ptr [ebp+FFFFFEC0] :0046E923 B9FF000000 mov ecx, 000000FF :0046E928 E8AB53F9FF call 00403CD8 :0046E92D 8D95C0FEFFFF lea edx, dword ptr [ebp+FFFFFEC0] :0046E933 8D45D2 lea eax, dword ptr [ebp-2E] :0046E936 B114 mov cl, 14 :0046E938 E81340F9FF call 00402950 :0046E93D 8A55D2 mov dl, byte ptr [ebp-2E] :0046E940 84D2 test dl, dl :0046E942 761C jbe 0046E960 :0046E944 B101 mov cl, 01 :0046E946 8D45D3 lea eax, dword ptr [ebp-2D] << Le nom dans eax :0046E949 33DB xor ebx, ebx << On remet ebx a 0 :0046E94B 8A18 mov bl, byte ptr [eax] << Valeur ascii de la lettre en cours dans bl :0046E94D 8BF9 mov edi, ecx << ecx = compteur on le met dans edi :0046E94F 81E7FF000000 and edi, 000000FF << operation sur edi :0046E955 0FAFDF imul ebx, edi << on multiplie bl par (nombre de passages AND 0xFF) :0046E958 03F3 add esi, ebx << on ajoute le tout a esi :0046E95A 41 inc ecx << on rajoute 1 au compteur :0046E95B 40 inc eax << on passe a la lettre suivante :0046E95C FECA dec dl << dl = taille du nom, on decremente dl :0046E95E 75E9 jne 0046E949 << si dl = 0 la boucle est fini => on se casse :0046E960 B867690600 mov eax, 00066967 << met 0x66967 dans eax (420199) :0046E965 2BC6 sub eax, esi << on soustrait le resultat de la routine a eax :0046E967 8BF0 mov esi, eax << on met la difference dans esi :0046E969 8D45E7 lea eax, dword ptr [ebp-19] << ce qui suit va servir en majeure partie :0046E96C 8D55D2 lea edx, dword ptr [ebp-2E] << a comparer le serial entre et le serial calcule :0046E96F B114 mov cl, 14 :0046E971 E8DA3FF9FF call 00402950 :0046E976 8A55E7 mov dl, byte ptr [ebp-19] :0046E979 84D2 test dl, dl :0046E97B 7620 jbe 0046E99D :0046E97D B101 mov cl, 01 :0046E97F 8D45E8 lea eax, dword ptr [ebp-18] :0046E982 F6C101 test cl, 01 :0046E985 7409 je 0046E990 :0046E987 8A18 mov bl, byte ptr [eax] :0046E989 80F352 xor bl, 52 :0046E98C 8818 mov byte ptr [eax], bl :0046E98E EB07 jmp 0046E997 :0046E990 8A18 mov bl, byte ptr [eax] :0046E992 80F34C xor bl, 4C :0046E995 8818 mov byte ptr [eax], bl :0046E997 41 inc ecx :0046E998 40 inc eax :0046E999 FECA dec dl :0046E99B 75E5 jne 0046E982 :0046E99D 8D95B8FEFFFF lea edx, dword ptr [ebp+FFFFFEB8] :0046E9A3 8BC6 mov eax, esi :0046E9A5 E8CA99F9FF call 00408374 :0046E9AA 8B85B8FEFFFF mov eax, dword ptr [ebp+FFFFFEB8] :0046E9B0 50 push eax :0046E9B1 8D95B0FEFFFF lea edx, dword ptr [ebp+FFFFFEB0] :0046E9B7 8B45FC mov eax, dword ptr [ebp-04] :0046E9BA 8B80DC020000 mov eax, dword ptr [eax+000002DC] :0046E9C0 E8B3ECFBFF call 0042D678 :0046E9C5 8B85B0FEFFFF mov eax, dword ptr [ebp+FFFFFEB0] :0046E9CB 8D95B4FEFFFF lea edx, dword ptr [ebp+FFFFFEB4] :0046E9D1 E81E98F9FF call 004081F4 :0046E9D6 8B95B4FEFFFF mov edx, dword ptr [ebp+FFFFFEB4] :0046E9DC 58 pop eax :0046E9DD E82A54F9FF call 00403E0C << call pour verifier le serial :0046E9E2 0F85A3000000 jne 0046EA8B << si edx != eax on se casse Pour coder le keygen on va recopier la routine [ 46E949 ; 46E95E ] : key proc, Nom :dWord, Taille :Dword uses edi, ebx xor ebx, ebx mov esi, Taille mov edx, 0 xor edx,edx xor ecx, ecx xor edi, edi mov ebx, Nom mov ecx, 1 Boucle: mov ebx, Nom movsx eax, byte ptr [ebx+ecx-1] mov edi, ecx and edi, 000000FFh imul eax, edi add edx, eax inc ecx dec esi jne boucle mov eax, 00066967h sub eax, edx ret key EndP Kahel - kahel@milliardaires.Com