能力值:
( LV12,RANK:1010 )
|
-
-
2 楼
用汇编写这么多,很累啊.
呵呵.
|
能力值:
( LV9,RANK:460 )
|
-
-
3 楼
这段代码好像是直接从Rootkit.Goldun中拿出来的
|
能力值:
( LV12,RANK:300 )
|
-
-
4 楼
_declspec (naked) void FakeReferenceObjectByHandle(){
_asm{
push [esp+0x18] //参数压栈
push [esp+0x18]
push [esp+0x18]
push [esp+0x18]
push [esp+0x18]
push [esp+0x18]
push fakeeip //压入假的返回地址
mov edi,edi //ObReferenceObjectByHandle的前5个字节
push ebp
mov ebp,esp
mov eax,ObReferenceObjectByHandle
add eax,5
jmp eax //跳到ObReferenceObjectByHandle去执行
fakeeip:
这跟sysdog另一帖的流程: _declspec (naked) NTSTATUS OriginalObReferenceObjectByHandle(IN HANDLE Handle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_TYPE ObjectType OPTIONAL,
IN KPROCESSOR_MODE AccessMode,
OUT PVOID *Object,
OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
{
_asm
{
mov edi,edi
push ebp
mov ebp,esp
mov eax,ObReferenceObjectByHandle
add eax,5
jmp eax
}
}
NTSTATUS DetourMyObReferenceObjectByHandle(
IN HANDLE Handle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_TYPE ObjectType OPTIONAL,
IN KPROCESSOR_MODE AccessMode,
OUT PVOID *Object,
OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
{
NTSTATUS status;
//调用原函数
status=OriginalObReferenceObjectByHandle(Handle,DesiredAccess,ObjectType,AccessMode,Object,HandleInformation); 其实是一回事,而楼主这样写搞了大量内嵌汇编,看起来好像汇编玩得不错,但是与sysdog这个写法相比之下,楼主的就显得太矫情了,何必呢……
|
能力值:
( LV9,RANK:260 )
|
-
-
5 楼
[QUOTE=轩辕小聪;667881]_declspec (naked) void FakeReferenceObjectByHandle(){
_asm{
push [esp+0x18] //参数压栈
p...[/QUOTE]
呵呵,练手而已,想试试只有一个fake函数,不在多个函数中跳,而且整个过程不恢复hook~
另外ObReferenceObjectByHandle函数被系统调用极为频繁,这样处理对系统效率影响小一些
另:sysdog那一贴所说的耗死CPU的原因找到了吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
都是高手,我只是看看不说话。
|
能力值:
( LV12,RANK:210 )
|
-
-
7 楼
小聪的处理 不错
|
能力值:
( LV9,RANK:380 )
|
-
-
8 楼
不使用hook 引擎?
|
能力值:
( LV9,RANK:260 )
|
-
-
9 楼
自己写的……和Rootkit.Goldun中的一样吗?还没看过Rootkit.Goldun
|
能力值:
( LV9,RANK:260 )
|
-
-
10 楼
主要是为了效率啦,这个函数系统调用很频繁的……
|
能力值:
( LV9,RANK:380 )
|
-
-
11 楼
我也hook了这个函数,xp ,2003就没有蓝过
|
|
|