首页
社区
课程
招聘
未解决 [求助] Windbg 修改内存、内存断点问题! 50.00雪花
发表于: 2020-3-13 05:08 2114

未解决 [求助] Windbg 修改内存、内存断点问题! 50.00雪花

2020-3-13 05:08
2114

首先,确切来讲这并不是一个关于如何使用 Windbg 的问题,而是一个关于内存的问题,标题取Windbg来描述是因为这个问题是在使用Windbg时碰上的。

以前学的关于Windows系统内存管理方面的知识,记不起多少了,没办法,求助大家一下,还恳请大家解答。

在用Windbg附加到一个进程时,找到一块存放数据的内存,设这个内存地址是 3f839e6e 。

试图用命令 eb  3f839e6e 90 去修改数据, Windbg提示 Memory access error in 'eb 3f839e6e 90' 

试图用命令 ba r1  3f839e6e 或者 ba w1  3f839e6e 对内存读写下断点,无效!(即,进程继续运行后,数据被修改,但是却无法中断)

!address 命令返回如下信息:
0:084> !address 3f839e6e
 ProcessParametrs 00271088 in range 00270000 00370000
 Environment 002707f0 in range 00270000 00370000
    3f830000 : 3f830000 - 00200000
                    Type     00020000 MEM_PRIVATE
                    Protect  00000004 PAGE_READWRITE
                    State    00001000 MEM_COMMIT
                    Usage    RegionUsageIsVAD


于是,写一个DLL,注入这个进程。

在DLL中,直接使用这个'硬地址'  3f839e6e,调用 VirtualQuery ,函数结果成功; 又尝试了下 VirtualProtect ,失败,GetLastError 返回 487 - 试图访问无效的地址。 

在Windbg中先下'写断点'  ba w1 3f839e6e,然后在DLL中,直接使用 *(DWORD*)0x3f839e6e = 0x11223344; Windbg成功中断!继续运行也可以成功修改数据!然后,原进程继续运行,在此处数据被修改后,Windbg仍然无法中断!


求解答,求给出解决方案 - 以实现可以在Windbg中修改此内存并且下内存读写断点;






[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//