Nisy 发表于 2008-3-20 12:31:38

完美qqip隐藏助手 1.68 简单的网络验证体系分析

完美qqip隐藏助手 1.68
http://www.onlinedown.net/soft/64240.htm

这款程序的网络验证体系是比较简单的 拿出来跟大家分享下。

软件无壳 并且在OD中可以搜索到关键的ASCII字符 我们从关键字符入手 打开注册窗口 在这里下断

00403855   .68 04010000   PUSH 104                                 ; /Arg5 = 00000104
0040385A   .50            PUSH EAX                                 ; |Arg4
0040385B   .53            PUSH EBX                                 ; |Arg3 => 00000000
0040385C   .68 94A24600   PUSH 完美QQIP.0046A294                     ; |Register
00403861   .68 90A24600   PUSH 完美QQIP.0046A290                     ; |QQ
00403866   .8D8C24 A00000>LEA ECX,DWORD PTR SS:            ; |
0040386D   .899C24 381300>MOV DWORD PTR SS:,EBX          ; |点注册后段到这里
00403874   .E8 F71C0300   CALL 完美QQIP.00435570                     ; \完美QQIP.00435570
00403879   .3BC3          CMP EAX,EBX
0040387B   .74 37         JE SHORT 完美QQIP.004038B4               ;这里跳走
0040387D   .8D8C24 140200>LEA ECX,DWORD PTR SS:
00403884   .68 88A24600   PUSH 完美QQIP.0046A288                     ; /已注册
00403889   .51            PUSH ECX                                 ; |s1
0040388A   .FF15 B0784500 CALL DWORD PTR DS:[<&MSVCRT._mbscmp>]    ; \_mbscmp
00403890   .83C4 08       ADD ESP,8
00403893   .85C0          TEST EAX,EAX
00403895   .75 11         JNZ SHORT 完美QQIP.004038A8                ;很显然 之前的版本未采用网络验证时 采用的是重启验证
00403897   .53            PUSH EBX
00403898   .53            PUSH EBX
00403899   .68 5CA34600   PUSH 完美QQIP.0046A35C                     ;注册完成, 请重新运行软件!
0040389E   .E8 E5C20400   CALL <JMP.&MFC42.#1200_AfxMessageBox>
004038A3   .E9 80030000   JMP 完美QQIP.00403C28


中间进行了一些加密数据的传送 结果下方的比较令我们很失望我们在这里下断:

00403B54   .E8 07010000   CALL 完美QQIP.00403C60                     ; \上方完成了网络验证 这里做比较
00403B59   .3BC3          CMP EAX,EBX
00403B5B   .74 4C         JE SHORT 完美QQIP.00403BA9               ;这里不跳转 则向注册表写入注册信息
00403B5D   .68 88A24600   PUSH 完美QQIP.0046A288                     ; /已注册
00403B62   .68 94A24600   PUSH 完美QQIP.0046A294                     ; |Register
00403B67   .68 90A24600   PUSH 完美QQIP.0046A290                     ; |QQ
00403B6C   .8D8C24 980000>LEA ECX,DWORD PTR SS:            ; |
00403B73   .E8 48190300   CALL 完美QQIP.004354C0                     ; \完美QQIP.004354C0
00403B78   .8BCF          MOV ECX,EDI
00403B7A   .E8 E7C00400   CALL <JMP.&MFC42.#2652_CCmdTarget::EndWa>
00403B7F   .53            PUSH EBX
00403B80   .53            PUSH EBX
00403B81   .68 38A34600   PUSH 完美QQIP.0046A338                     ;注册成功, 请重新运行程序。
00403B86   .E8 FDBF0400   CALL <JMP.&MFC42.#1200_AfxMessageBox>
00403B8B   .68 88A24600   PUSH 完美QQIP.0046A288                     ;已注册
00403B90   .8D4F 70       LEA ECX,DWORD PTR DS:
00403B93   .E8 DABD0400   CALL <JMP.&MFC42.#860_CString::operator=>
00403B98   .53            PUSH EBX
00403B99   .8BCF          MOV ECX,EDI
00403B9B   .C747 68 01000>MOV DWORD PTR DS:,1
00403BA2   .E8 65C00400   CALL <JMP.&MFC42.#6334_CWnd::UpdateData>
00403BA7   .EB 25         JMP SHORT 完美QQIP.00403BCE

向注册表写入一下信息:

Windows Registry Editor Version 5.00


"Register"="已注册"

网络验证 归根结底 其实还是本地验证的一种变形模式 因为程序验证后程序一定要向本地保存注册信息 程序启动时也一定会调用注册信息进行比较验证 或者程序的某些功能调用时一定会读取保存信息 所以程序的验证算法部分仍旧在本地实现 象这种不返回网络验证数据的程序数据网验中最简单的一种 并且程序保存的是固定数值 这里是最失败的手法

weiqian000 发表于 2008-3-21 15:44:16

能稍微再具体点吗?加点使用到的命令啥的

iamok 发表于 2008-3-21 15:59:41

学习学习。。。/:001

ThanksBoy 发表于 2008-3-23 17:05:34

不错啊学习一下啊

hzh686 发表于 2008-3-23 17:21:33

支持下子,学习学习~~

wnzlxj 发表于 2008-3-23 18:16:11

谢谢!学习了!/:014

天下 发表于 2008-3-24 18:19:25

网络验证的,要学习一下拉啊

阳小子 发表于 2008-3-28 18:23:33

谢谢分享心得!/:good

yaoguangyu 发表于 2008-3-30 08:39:09

我是菜鸟,看不懂。

卡卡 发表于 2008-3-30 18:13:54

页: [1] 2
查看完整版本: 完美qqip隐藏助手 1.68 简单的网络验证体系分析