能力值:
( LV2,RANK:10 )
|
-
-
2 楼
无驱进r0?有这种办法?不可能吧
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
要是有那就太刺激了  等高手来解答吧
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
R0是内核态,不用驱动怎么可能进入内核,不可能吧
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
利用漏洞,论坛里有人发了,不知道现在漏洞堵上了没有。利用VDM系统。
|
能力值:
( LV5,RANK:60 )
|
-
-
6 楼
__asm{//去掉内存保护
cli
mov eax,cr0
and eax,not 10000h
mov cr0,eax
}
这代码什么意思
|
能力值:
( LV5,RANK:60 )
|
-
-
7 楼
看了许多例子都有这两个代码
__asm{//去掉内存保护
cli
mov eax,cr0
and eax,not 10000h
mov cr0,eax
}
*((ULONG*)Address) = (ULONG)MyNtOpenProcess;//HOOK SSDT
__asm{//恢复内存保护
mov eax,cr0
or eax,10000h
mov cr0,eax
sti
}
什么意思,恢复和写保护是什么意思
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
利用漏洞....那也太不靠谱了,说不准明天就被MS给XX了,谁敢用来做商用的东西
|
能力值:
( LV5,RANK:60 )
|
-
-
9 楼
我去
连人都没了啊
编译如下蓝屏啊!
此hook openprocess出现的,在sp2还没出现过。。。。sp3出现的症状是驱动运行后,在运行exe文件就提示内存分配不足!~
|
能力值:
( LV5,RANK:60 )
|
-
-
10 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
mov eax,cr0 进入ring0 masm指令。需要用到mmx指令集
|
能力值:
( LV5,RANK:60 )
|
-
-
12 楼
并不是不给楼上的钱,你们的回答一点水平都没有,连一个知识点都没有!
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
__asm{//去掉内存保护
cli
mov eax,cr0
and eax,not 10000h
mov cr0,eax
}
*((ULONG*)Address) = (ULONG)MyNtOpenProcess;//HOOK SSDT
__asm{//恢复内存保护
mov eax,cr0
or eax,10000h
mov cr0,eax
sti
}
最近比较忙,没上,来点小知识点,共同学习。
先解释一下cli,sti这两个指令,cli:禁止中断发生,sti:允许中断发生。
为什么在进入r0之前要禁止中断呢,因为在内核模式下,一旦发生中断,就是蓝屏。
再说说这个cr0寄存器,顾名思义control register,控制寄存器。这个寄存器具体的详细作用我就不在这赘述了,可以参看intel手册,其实啊,就是修改了cr0的值。cr0是一个32位的寄存器,其内容应该是这样PG 0000(中间都是0) ET TS EM MP PE 。
and eax,not 10000h,前面保存了cr0的值,由于cr0不能直接参与运算,所以在eax其算好再给赋值回去。10000h,其实这个值应该为,10000000h,16进制,为了更直观一点我们写成32位的二进制
1000 0000 0000 0000 0000 0000 0000 0000
not 操作以后 0111 1111 1111 1111 1111 1111 1111 1111
第31位{PG} 0000(中间都是0) {ET TS EM MP PE}共5位
然后再与操作
之前是开启的分页的,所以PG位是1,其他几个标志位暂时不管它,因为我们主要目的就是去掉分页。与后PG位置0,其他不变。再把eax传给er0。
恢复同理,只不过是反向,这里的去掉保护实际上就是在保护模式下让内存不分页,直接就可以找到线性地址。OK,不知道这样说,满意不?
|
|
|