【文章标题】: QQ2009聊天记录查看器 7.3算法分析与算法实现
【文章作者】: renwoxiao
【作者邮箱】: [email]renwoxiao@126.com[/email]
【作者主页】: http://hi.baidu.com/renwoxiao
【作者QQ号】: 121663230
【软件名称】: QQ2009聊天记录查看器 7.3
【软件大小】: 276KB
【下载地址】: http://www.newhua.com/soft/90218.htm
【加壳方式】: 无
【保护方式】: 注册码
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OD,PEID
【操作平台】: Winxp/vista/win7/2000/2003
【软件介绍】: 使用方法,直接运行,然后选者要读取的QQ号码,然后
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
算法比较简单,大侠飘过
1。用peid查壳,为Microsoft Visual C++ 6.0,无壳就少一道工序了,轻松一点
2.算法分析
根据ximo大侠的各种语言按纽事件的找法(非MFC)
找到按钮事件,来到关键的地方
00402C1B |. 83F8 0C cmp eax, 0C
00402C1E |. 74 18 je short 00402C38
00402C73 |. 8B4C24 18 mov ecx, dword ptr [esp+18] //取出第一位
00402C77 |. BF 0A000000 mov edi, 0A
00402C7C |. 0FBEF1 movsx esi, cl
00402C7F |. 8BC6 mov eax, esi
00402C81 |. 0C 33 or al, 33 //第一位与33H做或运算
00402C83 |. 99 cdq
00402C84 |. F7FF idiv edi //异或的结果对0AH求余
00402C86 |. 0FBE6C24 1B movsx ebp, byte ptr [esp+1B]
00402C8B |. 83C2 30 add edx, 30 //求余的结果加30h
00402C8E |. 3BEA cmp ebp, edx //判断第四位是否与上面的结果相等,不等就跳向失败
00402C90 |. 74 18 je short 00402CAA
00402CAE |. 0FBEFD movsx edi, ch
00402CB1 |. 0FBECB movsx ecx, bl
00402CB4 |. 8BC7 mov eax, edi //把注册码的第二位给eax
00402CB6 |. 894C24 10 mov dword ptr [esp+10], ecx
00402CBA |. 0C 33 or al, 33 //第二位与33H做或运算
00402CBC |. B9 1A000000 mov ecx, 1A
00402CC1 |. 99 cdq
00402CC2 |. F7F9 idiv ecx //对 1AH求余
00402CC4 |. 8B4424 10 mov eax, dword ptr [esp+10]
00402CC8 |. 83C2 41 add edx, 41 //把求余的结果加上41H
00402CCB |. 3BC2 cmp eax, edx //判断第五位是否等于上面的结果,不等就跳向失败
00402CCD |. 74 18 je short 00402CE7
00402CE7 |> \0FBE4C24 1A movsx ecx, byte ptr [esp+1A] //取出注册码的第三位
00402CEC |. 0FBED7 movsx edx, bh
00402CEF |. 8BC1 mov eax, ecx //把注册码的第三位给eax
00402CF1 |. 895424 14 mov dword ptr [esp+14], edx
00402CF5 |. 0C 33 or al, 33 //第三位和33H做异或运算
00402CF7 |. BB 1A000000 mov ebx, 1A
00402CFC |. 99 cdq
00402CFD |. F7FB idiv ebx //异或的结果对1AH求余
00402CFF |. 8B5C24 14 mov ebx, dword ptr [esp+14]
00402D03 |. 83C2 61 add edx, 61 //求余的结果加61H
00402D06 |. 3BDA cmp ebx, edx //判断第六位是佛等于上面的运算结果,不等就跳向失败
00402D08 |. /74 18 je short 00402D22
00402D22 |> \8BC6 mov eax, esi //注册码的第一位给eax
00402D24 |. BE 0A000000 mov esi, 0A
00402D29 |. 83E0 11 and eax, 11 //第一位和11H做与运算
00402D2C |. 99 cdq
00402D2D |. F7FE idiv esi //与得结果对0A求余
00402D2F |. 0FBE4424 1E movsx eax, byte ptr [esp+1E]
00402D34 |. 83C2 30 add edx, 30 //求余的结果加30H
00402D37 |. 3BC2 cmp eax, edx //判断第七位是否等于上面的结果,不等就跳向失败
00402D39 |. 74 18 je short 00402D53
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!