作坊模块写CALL的经验.docVIP

  • 24
  • 0
  • 约 5页
  • 2016-09-24 发布于重庆
  • 举报
作坊模块写CALL的经验

用作坊模块写CALL的经验之谈 大家在使用模块写CALL时,对于参数方面很容易搞错了,这里我给大家简单讲解一下要注意的事项与经验. uXK$5 4N[bRCn 正确的汇编代码是 ( 8H mov eax,0xA3EE20 Z$6W)~;, mov eax,[eax] sA}=o.\j: mov ecx,[eax+0x178] #?8Z/1 ) mov edx,[ecx] mufF_e) push 0x0 ^Z\1z!{R push 0x3 *-` /A push 0x7 l|5ss{llR call [edx+0x1d0] L(AY)gB h9SS o0]F 从上面的意思,我们大概可以看出此CALL所传递的参数,有三个是通过入栈的,两个是分别通过ECX与EDX的, syBYH5 基于__fastcall调用约定的正是会涉及ECX与EDX两寄存器,一般其它寄存器很少会参与参数的传递作用 njvmf*A?S 上述代码分成两部份来看,一部份是针对寄存器的,一部份是入栈的. dHd{9ftyF 第一部份 寄存器操作 u3c e\ 第一二句代码的意思是 eax=[0xA3EE20] 是把内存0xA3EE20处的4字节值放进EAX寄存器里. +| Cvv]Tx1 第三句 ECX=[eax+0x178] 就是把之前读来的值+0x178做为内存地址,再次读

文档评论(0)

1亿VIP精品文档

相关文档