-
-
未解决 [求助] Windbg 修改内存、内存断点问题! 50.00雪花
-
发表于: 2020-3-13 05:08 2122
-
首先,确切来讲这并不是一个关于如何使用 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中修改此内存并且下内存读写断点;
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: