首页
社区
课程
招聘
[旧帖] [原创]实战软件网络验证的破解技巧 0.00雪花
发表于: 2008-2-4 11:05 3400

[旧帖] [原创]实战软件网络验证的破解技巧 0.00雪花

2008-2-4 11:05
3400
今早看到看雪上某人的请求,突发奇想写下这篇技巧。

那个软件的注册说明中写的是
下载更新服务: XXX/年,XXX/半年

也就是说是在他的服务器上更新用户信息,Client实时进行网络验证。

这种东西注册机虽然没用了,但爆破未必不行。

想起写注册机时经常见到验证函数,一般爆破技巧是在验证函数后,JNZ改JZ之类的,但大多软件都会进行多次验证,所以我突发奇想改验证函数。

跟踪发现,此程序的验证函数在00408F40
0041BD98   .  E8 A3D1FEFF   CALL 00408F40
0041BD9D   .  85C0          TEST EAX,EAX
0041BD9F   .  BF FC8F4F00   MOV EDI,004F8FFC
0041BDA4   .  75 05         JNZ SHORT 0041BDAB

于是直接进入函数把函数末尾0040901E的
RETN 0C 改为 MOV EAX,1 (它是靠EAX返回的)
保存运行...注册还没出呢,直接显示软件已过期...

再调
发现这个函数过期和注册在同一个函数里验证...无语

0041BD8A   .  6A 00         PUSH 0
0041BD8C   .  6A 00         PUSH 0
0041BD8E   .  68 84874F00   PUSH GameBT.004F8784 ASCII "Reged"
0041BD93   .  B9 F0B24F00   MOV ECX,GameBT.004FB2F0
0041BD98   .  E8 A3D1FEFF   CALL GameBT.00408F40

0041DEA8   .  6A 00         PUSH 0
0041DEAA   .  6A 01         PUSH 1
0041DEAC   .  68 24894F00   PUSH GameBT.004F8924 ASCII "OutOfDate"
0041DEB1   .  B9 F0B24F00   MOV ECX,GameBT.004FB2F0
0041DEB6   .  E8 85B0FEFF   CALL GameBT.00408F40

着实无奈...幸好函数下面NOP多,爆改

原函数:
              XXXX
              XXXX
00408FAB  |.  E8 F0FDFFFF   CALL 00408DA0
00408FB0  |.  83F8 01       CMP EAX,1
00408FB3  |.  74 23         JE SHORT 00408FD8
              XXXX
              XXXX
00408FD4  |.  8BC5          MOV EAX,EBP
00408FD6  |.  EB 33         JMP SHORT 0040900B
00408FD8  |.  XXXX
              XXXX
00409009  |.  8BC6          MOV EAX,ESI
0040900B  |.  XXXX
              XXXX
0040901E      C2 0C00       RETN 0C

改后:
              XXXX
              XXXX
00408FAB  |.  E8 F0FDFFFF   CALL 00408DA0
00408FB0  |.  83F8 01       CMP EAX,1
00408FB3  |.  74 23         JE SHORT 00408FD8
              XXXX
              XXXX
00408FD4  |.  8BC5          MOV EAX,EBP
00408FD6     /EB 49         JMP SHORT 00409021
00408FD8  |.  XXXX
              XXXX
00409009     /EB 1D         JMP SHORT 00409028
0040900B  |.  XXXX
              XXXX
0040901E      C2 0C00       RETN 0C
00409021      B8 01000000   MOV EAX,1
00409026    ^ EB E3         JMP SHORT 0040900B
00409028      B8 00000000   MOV EAX,0
0040902D    ^ EB DC         JMP SHORT 0040900B

原函数后的空隙刚刚好。

我只是用实例提出一种爆破方法,具体这个程序是否成功我也没有验证。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不错,虽然看不太懂
2008-2-4 16:13
0
雪    币: 216
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
改代码,比爆更高一招
2008-2-4 20:52
0
游客
登录 | 注册 方可回帖
返回