您的位置:首页 > 编程语言

关于代码重定位问题

2010-03-25 12:59 190 查看
在远程线程注入中,由于编程和实际运行处于不同的内存空间,势必会出现API内存地址不一致的情况,导致某些包含绝对地址的指令无法正常运行。解决这个问题的办法是代码重定位方法,具体代码如下:
dwVar dd ?
call @F
@@:
pop ebx
sub ebx,offset @B
mov eax,[ebx,offset dwVar]
通过call/pop/sub三个指令组合,能计算出代码当前的位置和设计时位置的偏移值之差,只要使用这个差值去修正包含绝对地址的指令,如全局变量的指令,能保证修正后的地址是正确的,这就解决了重定位问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: