首页
社区
课程
招聘
[求助]R0下搜索内存代码,导致系统重启?
发表于: 2009-12-21 17:49 4478

[求助]R0下搜索内存代码,导致系统重启?

2009-12-21 17:49
4478
while ( MmIsAddressValid(pModuleBase) )
{
__try{
dprintf("pbaseaddr:地址 %08X *08x", pModuleBase,*(PDWORD)pModuleBase);}
__except(EXCEPTION_EXECUTE_HANDLER)
{   break; }
pModuleBase++;
}

R0下,搜索一模块内存,读到某个地址,会让系统重启,不知道什么原因,多谢

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
2
不重启真是便宜你的代码了
2009-12-21 17:51
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
3
dprintf("pbaseaddr:地址 %08X *08x", pModuleBase,*(PDWORD)pModuleBase);
好神圣~
2009-12-21 18:04
0
雪    币: 141
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
dprintf("pbaseaddr:地址 %08X *08x", pModuleBase,*(PDWORD)pModuleBase);

*08x刚才打错了。
,*(PDWORD)pModuleBase这一点,引起的错误。
我感觉没错误呀,哈哈
2009-12-21 18:09
0
雪    币: 235
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
dprintf("pbaseaddr:地址 %08X *08x", pModuleBase,*(PDWORD)pModuleBase);
你的dprintf只有一个参数啊。。
%08X *08x 太强了。
%08X *%08X
2009-12-21 18:15
0
雪    币: 141
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那个地方是错了,不过不会引起重启,不信可以自己测试下。
*(PDWORD)pModuleBase,这个地方会,
2009-12-21 18:17
0
雪    币: 235
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
*(PDWORD)pModuleBase这个只是对pModuleBase取值,如果pModuleBase有效的话怎么会出错呢?
2009-12-21 18:21
0
雪    币: 141
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我不知道,要搜索一块 30000字节的内存,读到某个地址,就挂了
2009-12-21 18:23
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
哈哈,楼主同悲剧....哈哈....
顺便膜拜楼主的代码....
2009-12-21 18:32
0
雪    币: 141
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我把调试信息,输出到文件。看看
2009-12-21 18:35
0
雪    币: 141
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
经过反复调试,发现是,超过了模块边界,
。。。
2009-12-21 19:02
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
12
内核地址 TRY也没用..还有不知道pModuleBase 你是怎样声明的.....一般还是访问物理内存好
2009-12-21 21:36
0
雪    币: 141
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
unsigned long
2009-12-22 01:51
0
游客
登录 | 注册 方可回帖
返回
//