关于代码重定位问题
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三个指令组合,能计算出代码当前的位置和设计时位置的偏移值之差,只要使用这个差值去修正包含绝对地址的指令,如全局变量的指令,能保证修正后的地址是正确的,这就解决了重定位问题。
dwVar dd ?
call @F
@@:
pop ebx
sub ebx,offset @B
mov eax,[ebx,offset dwVar]
通过call/pop/sub三个指令组合,能计算出代码当前的位置和设计时位置的偏移值之差,只要使用这个差值去修正包含绝对地址的指令,如全局变量的指令,能保证修正后的地址是正确的,这就解决了重定位问题。
相关文章推荐
- 关于VS2005和VS2008调试时,有些代码不能单步调试问题
- 关于 生产者与 消费者问题 代码 ++ 注释
- Web.XML文件中关于代码提示的一些问题
- git提交代码到远程仓库遇到的问题并且关于ssh密钥的研究
- 关于编译4+2版本遇到的不是代码的问题和添加launcher以及svn上传问题
- 关于alert后,才能继续执行后续代码问题
- 关于ModalPopup控件不能调用CS事件代码的问题
- 关于利用position定位在页面正中心的问题(还有一个z-index的知识点)
- 关于jenkins更新后, job description只显示html代码的问题
- U-Boot中关于TEXT_BASE,代码重定位,链接地址相关说明
- 关于Python数据分析基础教程 Numpy学习指南 第二版 第三章中代码所呈现的问题
- 关于eclipse安装的Extjs4.2没代码提示的问题
- 一段关于浏览器兼容的事件定位代码,经过测试!
- 关于Selenium自动化的定位问题
- 关于fseek不能定位大于2G文件的问题
- 关于java代码质量的问题
- mui框架混合app关于定位问题
- 问题四,关于概念的实际应用(代码题)。公司面试99%要考的,有答案!
- 【MFC】:MFC关于文件读写的代码及结构体的错误问题
- 前端小总结第一幕:关于多人一起开发的前端样式代码管理问题