当前位置: 代码迷 >> 汇编语言 >> 涉及到堆栈地址,不知道怎么写这个call,请问一上,非常感谢
  详细解决方案

涉及到堆栈地址,不知道怎么写这个call,请问一上,非常感谢

热度:2466   发布时间:2013-02-26 00:00:00.0
涉及到堆栈地址,不知道如何写这个call,请教一下,非常感谢!

各位大侠好!
附件是我找到的网游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指针。
  相关解决方案