各位大侠好!
附件是我找到的网游call截图,这是一个丢弃物品的call。
其中:
第一行的 04277288 内存段,进一步读出来的参数是:
1D59801A 代表 物品编号
0016F74D 代表 物品ID
00000002 代表 物品数量
因为此前没有遇过这样复杂的call。
所以在此想请教下,我该如何写出这个call来?多谢各位大大指导!
------解决方案--------------------------------------------------------
不是很明白lz的问题?是不知道call的参数? or 其它?
按照lz的意思,04277288 内存段开始就是字函数的入口参数?如果是的话,分析子函数的每条汇编的esp相关的代码
------解决方案--------------------------------------------------------
lz没有给出寄存器上下文,反汇编代码与 04277288 对照不起来
------解决方案--------------------------------------------------------
先把做一个struct,然后取其地址,最后把地址传给call
------解决方案--------------------------------------------------------
第一行的 04277288 内存段,进一步读出来的参数是:
1D59801A 代表 物品编号
0016F74D 代表 物品ID
00000002 代表 物品数量
这部分定义成结构体,然后对成员变量赋值后,传地址给函数 它是89d0f0的第一个参数,也就是call上面的那个push edx
call 89d0f0确定一下是需要几个参数,应该是两个参数,因为push了两次,具体是不是,要到89d0f0中看一下,确定一下push ecx是什么值。
lea ecx, dword ptr ds:[eax+0x19d8]应该是this指针。