-
-
RootkitUnhooker一个蛋疼函数
-
发表于: 2011-4-26 13:40 3715
-
IRP_MJ_CREATE的分发函数,设置了SEH,各种跳
最后跳到
xor eax,eax
mov [eax],eax
驱动中
IoGetDeviceObjectPointer-->ZwCreateFile->>>
IopParseDevice 然后发送了一个IRP就跳蓝了,没去看他怎么跳的。。。
应用程序直接ntdll!NtCreateFile打开\Device\rkhdrv40就挂了
他自己怎么就不挂呢。。。
Ps:原来ObReferenceObjectByName一般是无法获取\Device\xx的
他调用了ObpLookupObjectName->IopParseDevice
POPEN_PACKET op = Context;
if (op == NULL || //parseContext一般都是设置为0的,只有NtCreateFile才传递一个数据包
op->Type != IO_TYPE_OPEN_PACKET ||
op->Size != sizeof( OPEN_PACKET ))
{
return STATUS_OBJECT_TYPE_MISMATCH;
}
难怪用了IoDeviceObjectType还是一直STATUS_OBJECT_TYPE_MISMATCH。
最后跳到
xor eax,eax
mov [eax],eax
驱动中
IoGetDeviceObjectPointer-->ZwCreateFile->>>
IopParseDevice 然后发送了一个IRP就跳蓝了,没去看他怎么跳的。。。
应用程序直接ntdll!NtCreateFile打开\Device\rkhdrv40就挂了
他自己怎么就不挂呢。。。
Ps:原来ObReferenceObjectByName一般是无法获取\Device\xx的
他调用了ObpLookupObjectName->IopParseDevice
POPEN_PACKET op = Context;
if (op == NULL || //parseContext一般都是设置为0的,只有NtCreateFile才传递一个数据包
op->Type != IO_TYPE_OPEN_PACKET ||
op->Size != sizeof( OPEN_PACKET ))
{
return STATUS_OBJECT_TYPE_MISMATCH;
}
难怪用了IoDeviceObjectType还是一直STATUS_OBJECT_TYPE_MISMATCH。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: