首页
社区
课程
招聘
[求助]0环下可以call 3环的地址吗?
发表于: 2010-8-6 15:59 6540

[求助]0环下可以call 3环的地址吗?

2010-8-6 15:59
6540
问个问题
我用一个app给驱动传一个3环的地址比如4a0000,
这个4a0000处的内容为0xC3,也就是ret
然后我在驱动的dispatch中 call 4a0000 这个ret会被执行吗?

_asm
{
  mov eax,0x4a0000
  call   eax
}

我调试的结果是...执行了这个ret后,又返回来继续执行后面的代码了.

但是..如果4a0000处是一个调用MessageBox的代码
比如
push 0
push 0
push 0
push 0
call MessageBoxA
ret
那我用windebug看到的情况是...call到MessageBoxA后就断不到后面那个ret了.

我想知道第一种情况下...
那个ret被执行了吗?

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

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 242
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
F10
F10
F10
F10
F10
......
2010-8-6 16:08
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
可以的吧.
调试一下就知道了.
2010-8-6 16:55
0
雪    币: 53
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我调了啊...

我调试的结果是...执行了这个ret后,又返回来继续执行后面的代码了.

但是..如果4a0000处是一个调用MessageBox的代码
比如
push 0
push 0
push 0
push 0
call MessageBoxA
ret
那我用windebug看到的情况是...call到MessageBoxA后就断不到后面那个ret了.

3环程序都好像直接结束掉了
2010-8-6 17:23
0
雪    币: 83
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
R0和R3的代码所在的段重合,可以直接call
不是同一个段,则不能直接call
2010-8-6 17:37
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
要挂靠目标进程环境,该地址才有效。ring3地址内容是不断变化的。
2010-8-6 18:03
0
雪    币: 73
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
晕倒,我一直认为会BSOD的,原来是可以的,我去试试。
2010-8-7 15:22
0
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
8
ret肯定已ring0执行了。MessageBoxA也会到内核转一圈,这样似乎乱了
2010-8-9 10:25
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
9
的 挂靠R3目标进程吧,貌似不可以这样断下
2010-8-9 20:22
0
雪    币: 132
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
看不懂~
努力学习~
希望有一天可以看懂~
楼主辛苦~
2010-10-28 06:36
0
雪    币: 132
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
怎么看是不是在同一个段呢?
2010-10-29 11:04
0
雪    币: 104
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我也没试过,等待高人出现
2010-10-31 02:25
0
雪    币: 132
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
用了常规方法 远程线程注入

打开进程
申请虚拟内存
写入shellcode
创建远程线程
shellcode做什么都能执行。。。但是写call 3环地址 马上蓝。。。

怀疑内核创建远程线程有什么机制没弄懂。。。
2010-11-2 21:08
0
游客
登录 | 注册 方可回帖
返回