首页
论坛
课程
招聘
[原创]公共变量查询脚本
2011-1-12 21:51 3087

[原创]公共变量查询脚本

2011-1-12 21:51
3087
mov findaddr, 401000
mov findover, findaddr
add findover, 8C7000

START:
cmp findaddr, findover
jae END
findop findaddr, #8B??#
cmp $RESULT, 0
je END
mov findaddr, $RESULT
add findaddr, 2
cmp [findaddr], 0118
je FIND118
cmp [findaddr], 05F8
je FIND5F8
jmp START

FIND118:
mov opcode, findaddr
sub opcode, 2
eval "{opcode} MOV E?X,DWORD PTR DS:[E?X+118]"
log $RESULT
jmp START

FIND5F8:
mov opcode, findaddr
sub opcode, 2
eval "{opcode} MOV E?X,DWORD PTR DS:[E?X+5F8]"
log $RESULT
jmp START

END:
ret


通常在破解某些限制程序时 需要了解特定变量在程序中的各个位置和其作用,比如 这里的

call XXXXXXXX  这里通常是调用 一个配置 比如 FConf->SocketCount() 的 FConf
MOV MCX, EAX
MOV EAX, DWORD PTR DS:[ECX+118] 是读取 socket 连接数的
MOV EDX, DWORD PTR DS:[ECX+5F8] 是读取 在线用户数的
SUB EAX, EDX

有些软件为了限制你使用人数,会做分别读取这2个变量,然后相减,再判断其活动数量,
再调用 closeSocket 而不是直接判断 socket 的总数, 用这个脚本可以找到其所有读取
这2个内存的位置,然后判断其功能,就可以去掉限制,当然还有其他目的。

脚本很简单,高手飘过

[看雪官方]《安卓高级研修班》线下班,网课(12月)班开始同步招生!!

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回