本帖最后由 Poner 于 2017-10-31 11:17 编辑
最近在搞硬件实在是无聊至极 于是百度了一下发现有DM游戏
然后蓝屏了 接着有人推荐了章鱼哥的 自动挂机系列
于是下载回来见见世面 感觉还行
但是 太慢了 对于我这种急性子 实在无法忍受
于是 右击 editplus 查看了下dll
开头4个字WCDB 我特么差点就信了是微信的开源数据库框架
然后偶然在他们群里看到了一个 没有完成的.e文件
然后打开我电脑里易语言的edb,原来是同样的文件。
知己知彼百战不殆
于是百度了一下怎么访问 带密码的EDB文件
于是捣鼓了一个 易语言程序
打开()
输出 取记录集数量??() 忘记了
然后od载入 看了2遍流程后发现了猫腻
于是转换成数字 1258318430 (4B006A5E) 在游戏里一搜索 有2个结果
[Asm] 纯文本查看 复制代码 为了成为骑士!(v正式版2.45).exe+41826C - 5E - pop esi
为了成为骑士!(v正式版2.45).exe+41826D - 6A 00 - push 00
为了成为骑士!(v正式版2.45).exe+41826F - 4B - dec ebx
为了成为骑士!(v正式版2.45).exe+418270 - 75 FB - jne 为了成为骑士!(v正式版2.45).exe+41826D
为了成为骑士!(v正式版2.45).exe+418272 - FF E6 - jmp esi
于是 看了下游戏的执行过程 果然在相同的位置出现了打开数据库的密码
就是说我能直接修改存档了
如图所示 密码是 9d9hozv6z5a8hfma4s
以后 我就可以高枕无忧的改游戏了 不用CE那么麻烦了
一堆没什么用的代码
[Asm] 纯文本查看 复制代码
var tmp1
var s
run
GMI eip, MODULEBASE
mov tmp1, $RESULT
BC
jmp l_bpa
l_bpa1:
bp tmp1
l_bpa:
inc tmp1
findmem #5E6A004B75FBFFE6#, tmp1
mov tmp1, $RESULT
cmp tmp1, 0
jne l_bpa1
l_wait:
dbh
RUN
ESTO
ESTO
ESTO
ESTO
BC eip
sto
mov tmp1,esi
findmem #bb0?000000#, tmp1
mov tmp1, $RESULT
inc tmp1
findmem #E8#, tmp1
bp $RESULT
RUN
log "================================"
buf s
mov s,[eax]
log s
log "================================"
MSGYN "请查看OD日志,试下最后等号中间的是不是密码"
mov tmp1, $RESULT
cmp tmp1, 0
je l_wait
编辑补充:
我的OD之忽略了 无效或特权指令
打开OD 载入游戏 会停在一个7开头的地址 然后载入脚本 运行
游戏会弹出来 然后正常操作游戏使得会出现存档(保存出数据库文件)
游戏会卡住 此时 切换回OD 查看LOG 如果不是密码 那么 点否
脚本会继续执行
如果你跟踪的是个程序 可能需要在程序上反复操作几次 |