大概的代码例如下面:
100D7EF9 53 push ebx
100D7EFA 8D85 E4D7FFFF lea eax, dword ptr [ebp-281C]
100D7F00 50 push eax
100D7F01 8D8D E8D7FFFF lea ecx, dword ptr [ebp-2818]
100D7F07 51 push ecx
100D7F08 68 00280000 push 2800
100D7F0D 8D95 F0D7FFFF lea edx, dword ptr [ebp-2810]
100D7F13 52 push edx
100D7F14 8D4F 28 lea ecx, dword ptr [edi+28]
100D7F17 C745 FC 0100000>mov dword ptr [ebp-4], 1
100D7F1E 899D E4D7FFFF mov dword ptr [ebp-281C], ebx
100D7F24 E8 8770FFFF call 100CEFB0
可以看到所有的参数都是一个堆里面的内容,自然到了call后面,介入的数据也都是在堆里,也就是说ebp是一个变化的东西,而使用readprocessmemery直接硬读地址而取得这个100CEFB0函数的参数,就不太可能,用hook,又牵涉到函数的参数不明了,猜起来太费心。
那么请问各位,如果我想要给上面的函数做一个内存级别的补丁,应该怎么入手?谢谢……
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课