果粒 发表于 2011-10-14 21:12:01

又来打扰你了,思维老师,关于问道背包物品的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的基质,求救思维老师

小小思维 发表于 2011-10-14 21:56:45

用CE找ESI的值~~~

果粒 发表于 2011-10-15 12:54:00

本帖最后由 果粒 于 2011-10-15 12:56 编辑

回复 2# 小小思维


    思维老师,我用CE查过的,进去几个之后,是一个循环,老是mov ebp,,一直是这样的,我跟踪进去,跟踪了近30层,还是这样,估计这个值是不是也是通过call来获取的?求助

ljx408 发表于 2011-10-15 13:10:09

l留个QQ一起交流下!

果粒 发表于 2011-10-15 13:11:14

回复 1# 果粒


    背包基址比较难找哇,呵呵

ngmantis 发表于 2011-10-15 14:35:26

ce 找esi的值..然后随便选一个地址下断..如果断不下来就继续选..这样找才能找得到

getdisplay 发表于 2011-10-17 15:33:07

用CE在背包内搜索第一格的药数量,然后吃掉一个在搜。。找出来mov ecx,类型的才是数组!

laomaicn 发表于 2011-11-6 11:47:42

问道的背包每个格子对应一个格子ID 例如第一个=101 而且它不是数组的方式遍历的
看你的汇编源码你应该要找:MOV ECX,DWORD PTR DS:这个ESI的值 然后ESI+1E0=物品的地址 再经过:CALL EDX取出EAX就是该物品的数量了
所以问道很多数据都是要经过CALL返回后才能得到的

果粒 发表于 2011-11-7 11:34:00

回复 8# laomaicn

关键是这个ESI,找不到,而且发现,每次重新打开背包后,第一格的地址就变了,但是第一个的ID=101没变

yjxaep 发表于 2011-11-16 17:34:35

有结果了吗?
页: [1] 2
查看完整版本: 又来打扰你了,思维老师,关于问道背包物品的call