首页
社区
课程
招聘
[求助]为什么有的程序可以ring3下直接使用in和out来读写IO端口???
发表于: 2011-7-23 12:41 6634

[求助]为什么有的程序可以ring3下直接使用in和out来读写IO端口???

2011-7-23 12:41
6634
00525D67  |.  B1 01             mov cl,1
00525D69  |.  33D2              xor edx,edx
00525D6B  |.  B8 505E5200       mov eax,vcr446f_.00525E50
00525D70  |.  E8 2381FEFF       call vcr446f_.0050DE98
00525D75  |.  66:8B15 7A815304  mov dx,word ptr ds:[453817A]
00525D7C  |.  83C2 16           add edx,16
00525D7F  |.  B0 00             mov al,0
00525D81  |.  EE                out dx,al     //这里
00525D82  |.  6A 01             push 1                             ; /Timeout = 1. ms
00525D84  |.  E8 4788EEFF       call <jmp.&KERNEL32.Sleep>         ; \Sleep
00525D89  |.  66:8B15 7A815304  mov dx,word ptr ds:[453817A]
00525D90  |.  83C2 16           add edx,16
00525D93  |.  EC                in al,dx            //还有这里
00525D94  |.  8845 FF           mov byte ptr ss:[ebp-1],al
00525D97  |.  807D FF 00        cmp byte ptr ss:[ebp-1],0
00525D9B  |.  74 72             je short vcr446f_.00525E0F
00525D9D  |.  6A 00             push 0
00525D9F  |.  B1 04             mov cl,4


程序目录下面有个驱动,但360一直没提示有加载 。我就干脆拿掉了再试。结果还是可以IO端口。
我就纳闷了,,,OD一看, 里面竟发现了in和out。
请问如何直接在ring3使用这些指令呀??

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
ring3本来就可以直接IO的,如果IOPL允许的话……
2011-7-23 13:04
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那这个方法有没有通用性呢???
我之前看过 combojiang 大牛的系列文章《rootkit直接访问硬件》
里面有一篇 “rootkit直接访问硬件之一 ----修改IOPL ”
如果有通用性的话,我想找点相关的资料。认识一下这方面。
2011-7-23 14:24
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
本来就可以~~话说很久以前有说过的~~ZwSetInformationProcess啊~~
2011-7-23 22:15
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是使用这个函数。但是失败了。要什么权限呢?
2011-7-27 00:10
0
游客
登录 | 注册 方可回帖
返回
//