已编译好的注册机成品下载:
此主题相关文件 KeyGen_038BBwg.rar ------------------------------------------------------------- 【软件名称】 xx外挂浮点注册算法分析 【文章作者】 仙剑太郎 【网站地址】 中国X黑客小组 www.CnXHacker.com 【破解工具】 Ollydbg 【软件语言】 Microsoft Visual C++ 【破解声明】 我是一只小菜鸟,偶的一点心得,愿与大家分享:) ------------------------------------------------------------- 【破解过程】
一个冒险岛的小外挂,无壳,VC写的,偶们菜鸟拿来做练习最好不过了~ 软件使用了浮点运算,正好复习一下浮点指令:)好,下面开工了.. 我这里的机器码是DFMPHHCCF4,随便输入注册码,根据出错提示很容易找到关键地方,向上翻,会找到算法开始的地方,如下
004028B9 . 33C0 xor eax,eax 004028BB . 8B35 >mov esi,dword ptr ds:[41F54C] ; 038版本?0041F560 004028C1 . 89442>mov dword ptr ss:[esp+2D],eax 004028C5 . 33D2 xor edx,edx 004028C7 . 89442>mov dword ptr ss:[esp+31],eax 004028CB . 89542>mov dword ptr ss:[esp+44],edx 004028CF . 89442>mov dword ptr ss:[esp+35],eax 004028D3 . 88542>mov byte ptr ss:[esp+2C],dl 004028D7 . 66:89>mov word ptr ss:[esp+39],ax 004028DC . 89742>mov dword ptr ss:[esp+10],esi 004028E0 . 88442>mov byte ptr ss:[esp+3B],al 004028E4 . 8B7C2>mov edi,dword ptr ss:[esp+18] ; 机器码指针放进edi 004028E8 . 83C9 >or ecx,FFFFFFFF 004028EB . 33ED xor ebp,ebp 004028ED . C6442>mov byte ptr ss:[esp+44],1 004028F2 . F2:AE repne scas byte ptr es:[edi] ; 计算机器码长度 004028F4 . F7D1 not ecx 004028F6 . 49 dec ecx ; 长度为0xA 004028F7 . 89542>mov dword ptr ss:[esp+14],edx 004028FB . 8BF9 mov edi,ecx ; 保存机器码长度 004028FD . 0F84 >je 038版本?00402A9E 00402903 . BE 01>mov esi,1 00402908 . 3BFE cmp edi,esi ; 机器码长度是否小于1? 0040290A . 89742>mov dword ptr ss:[esp+1C],esi 0040290E . 0F8C >jl 038版本?004029C3 ; 小于则over 00402914 . DD05 >fld qword ptr ds:[41A768] ; 将0.0放入st0 0040291A > 8B4C2>mov ecx,dword ptr ss:[esp+18] ; 循环的开始,机器码指针保存到ecx中 0040291E . DB442>fild dword ptr ss:[esp+1C] ; 第N位放到st0 00402922 . 8A5C3>mov bl,byte ptr ds:[ecx+esi-1] ; 机器码逐字符ASCII放到bl 00402926 . 0FBED>movsx edx,bl ; 保存到edx中 00402929 . DD5C2>fstp qword ptr ss:[esp+24] ; 取st0值到esp+0x24中,出栈 0040292D . 89542>mov dword ptr ss:[esp+1C],edx ; 将第N个ASCII放到esp+0x1c 00402931 . DB442>fild dword ptr ss:[esp+1C] ; 第N个ASCII整数值到st0中 00402935 &nb [1] [2] [3] [4] [5] [6] [7] [8] 下一页 |