又来打扰你了,思维老师,关于问道背包物品的call
本帖最后由 果粒 于 2011-10-14 21:14 编辑我找到了问道背包物品call
00412A3F|. /75 16 JNZ SHORT asktao.00412A57
00412A41|. |8B8E E0010000 MOV ECX,DWORD PTR DS:
00412A47|. |8B01 MOV EAX,DWORD PTR DS:
00412A49|. |8B50 20 MOV EDX,DWORD PTR DS:
00412A4C|. |68 680B8800 PUSH asktao.00880B68 ;ASCII "amount"
00412A51|. |FFD2 CALL EDX
00412A53|. |894424 14 MOV DWORD PTR SS:,EAX ;这个是背包物品的数量
00412A57|> \8B8E E0010000 MOV ECX,DWORD PTR DS:
00412A5D|.8B01 MOV EAX,DWORD PTR DS:
00412A5F|.8B50 0C MOV EDX,DWORD PTR DS:
00412A62|.68 080C8800 PUSH asktao.00880C08 ;ASCII "icon"
00412A67|.FFD2 CALL EDX ;背包物品ID
00412A69|.8B16 MOV EDX,DWORD PTR DS:
但是ESI往上找始终找不到,因为,往上找都是一个循环了,这个循环,有很多事情都在处理,这样反汇编很难找到ESI的基质,求救思维老师 用CE找ESI的值~~~ 本帖最后由 果粒 于 2011-10-15 12:56 编辑
回复 2# 小小思维
思维老师,我用CE查过的,进去几个之后,是一个循环,老是mov ebp,,一直是这样的,我跟踪进去,跟踪了近30层,还是这样,估计这个值是不是也是通过call来获取的?求助 l留个QQ一起交流下! 回复 1# 果粒
背包基址比较难找哇,呵呵 ce 找esi的值..然后随便选一个地址下断..如果断不下来就继续选..这样找才能找得到 用CE在背包内搜索第一格的药数量,然后吃掉一个在搜。。找出来mov ecx,类型的才是数组! 问道的背包每个格子对应一个格子ID 例如第一个=101 而且它不是数组的方式遍历的
看你的汇编源码你应该要找:MOV ECX,DWORD PTR DS:这个ESI的值 然后ESI+1E0=物品的地址 再经过:CALL EDX取出EAX就是该物品的数量了
所以问道很多数据都是要经过CALL返回后才能得到的 回复 8# laomaicn
关键是这个ESI,找不到,而且发现,每次重新打开背包后,第一格的地址就变了,但是第一个的ID=101没变 有结果了吗?
页:
[1]
2