关闭

内存相关操作

323人阅读 评论(0) 收藏 举报

1. 最近做一些hook的东西,对某些内存做操作时引发访问违规,于是利用内核函数更改了页面属性,在winxp下没有问题,但在win7下程序运行异常,只是简单的一句push ebp,检查esp、ebp都没发现什么问题,后!address eip发现代码页为PAGE_WRITE*属性,而正常的代码段属性为PAGE_EXECUTE_READONLY,于是推测之前的操作将代码段的属性修改后未复原,后经将代码段属性恢复,程序在win7上运行正常。

2. windbg内核调试时,就算页面属性为ReadOnly,也可以修改此页面的内存,但是用户模式调试器缺不能,不解,有高手解答下?

3. 在远程注入相关代码中,使用 Wr i t e P r o c e s s M e m o r y函数,而不是
I n t e r l o c k e d E x c h a n g e P o i n t e r函数是因为Wr i t e P r o c e s s M e m o r y能够改变字节,而不管这些字节拥
有什么页面保护属性。例如,如果页面拥有 PA G E _ R E A D O N LY保护属性,那么 I n t e r l o c k e d
E x c h a n g e P o i n t e r函数将会引发访问违规,而 Wr i t e P r o c e s s M e m o r y函数则能够处理页面保护属性
的所有变更,并且仍然能够正常运行。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:169687次
    • 积分:2989
    • 等级:
    • 排名:第11737名
    • 原创:106篇
    • 转载:59篇
    • 译文:19篇
    • 评论:19条
    最新评论