【文章标题】: 四种方法定位蓝鸟精灵关键
【文章作者】: 卡卡
【作者邮箱】: [email]yeyaoya@gmail.com[/email]
【作者主页】:
www.icy8.cn
【软件名称】: 蓝鸟精灵3.0
【下载地址】: 自己搜索下载
【保护方式】: 重启验证
【编写语言】: VB
【使用工具】: OD C32 和自己大脑
【操作平台】: 正版XP2
【软件介绍】: 一个网吧管理软件的外挂
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
方法A
用C32找其关于注册的可疑字符,具体操作方法是:编辑---使用UNICODE分析字符---查看---字符串
然后我们搜索 试用 ,然后就可以用C32定位到这
00468622:: 68 ACD94100 PUSH 41D9AC PUSH指向的字符串就是试用这地方了
现在该OD出场了 Ctrl+G 00468622 然后就定位都这地方了
004685FE . FF90 40070000 CALL DWORD PTR DS:[EAX+740]
00468604 . 66:833D 34704>CMP WORD PTR DS:[497034],0 今天我们的主角出现了 :)大概意思是0和497034处的内存地址指向的值比较
0046860C . 75 3B JNZ SHORT ICY.00468649 关键跳转,不相等或不等于0就跳 这里可以推断如果是1就极可能就是注册版本了
0046860E . 8B0E MOV ECX,DWORD PTR DS:[ESI]
00468610 . 56 PUSH ESI
00468611 . FF91 18030000 CALL DWORD PTR DS:[ECX+318]
00468617 . 50 PUSH EAX
00468618 . 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
0046861B . 52 PUSH EDX
0046861C . FFD3 CALL EBX
0046861E . 8BF8 MOV EDI,EAX
00468620 . 8B07 MOV EAX,DWORD PTR DS:[EDI]
00468622 . 68 ACD94100 PUSH ICY.0041D9AC 试用这字符就在这了
看完注释后,我们就来验证我们的想法吧
00468604 . 66:833D 34704>CMP WORD PTR DS:[497034],0 F2下断,F9运行
断后,看信息窗口 DS:[00497034]=0000 和我们想象的是一样的,没有注册为0
我们跟随00497034地址到数据窗口,下个硬件写入断点,看看程序什么时候把0写进去的
GO!!!! 我这F9两次后就断在这了
00478B0E > \E8 9DE00000 CALL ICY.00486BB0
00478B13 . 66:A3 3470490>MOV WORD PTR DS:[497034],AX CALL的返回值AX写入这个内存地址,所以说此CALL为关键CALL哦
00478B19 . 68 4E8B4700 PUSH ICY.00478B4E
继续我们的旅程
00478B0E > \E8 9DE00000 CALL ICY.00486BB0 F2下断这CALL,重新来后F7进去后
果然发现新大陆的感觉,算法和真注册码这两朋友都在呢 呵呵 算法就不分析了 谁给补上做我的姐妹篇
如果来个现在流行的标志位爆破就非常美妙了 F7进上面这CALL后的开头来个
xor eax,eax EAX清0
inc eax 加1
retn 返回
做到这就算完成的第一种方法,继续,GO.....
方法B
因为此程序为VB程序,所以就下个算是VB的万能断点了,我可是通杀过好多软件呢
BP __vbaStrComp 此方法的主角 F9 好多次后,在这其中发现有很多可疑字符串就要留意了
就要返回程序领空了,如果你操作正确将返回算法里面 :)
大家可以试下下另外个函数 BP GetPrivateProfileStringA 因为此软件把注册码放到自身某个目录里面
或者也可以下 BP CreateFileA 看看
方法C
用PEDI的密码学习插件发现有MD5的影子,结合机器码 我的: 81F8FBDAA2B58DD6FE57B467998E 32位
有理由相信软件用了MD5算法 位置是 00493CB8
现在就用OD CTRL+G 00493CB8 最好拉到这段MD5算法的尾部 以 Retn 为结束标志
下面就很简单了,喝杯茶,慢慢跟。。。。。。
方法D
用OD直接运行程序 ALT+M打开内存---Ctrl+B选择UINCODE那行搜索你自己的机器码-----然后下硬件写入断点
调试的时候如果在寄存器发现自己的机器码就要注意了哦 -
--------------------------------------------------------------------------------
【经验总结】
上面都是经验,做此文章的理由是我这IBM又可以进去了,原来是开了数字键,老是输入错误,后来得到群朋友指点才解决
作为回报就写下这篇菜鸟学习的简单文章了也借此文章来纪念我死去的爱情,今天开始我要重新做人,向FLY一样要做大侠
--------------------------------------------------------------------------------
2007年08月11日 0:24:00
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!