首页
社区
课程
招聘
[讨论]帮我看下哪里错了,不要骂我。。。
发表于: 2009-5-24 10:52 3585

[讨论]帮我看下哪里错了,不要骂我。。。

2009-5-24 10:52
3585
#include "ntddk.h"
#include "ntdef.h"
#include "string.h"

UNICODE_STRING  KeyPath=RTL_CONSTANT_STRING
(L"\\Registry\\Machine\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");

UNICODE_STRING  KeyName=RTL_CONSTANT_STRING(L"vmware-tray");
HANDLE KeyHandle;
POBJECT_ATTRIBUTES Obj_attrib={0};

VOID OnUnLoad(IN PDRIVER_OBJECT DriverOject)
{
DbgPrint("UnLoad!");
}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
{
NTSTATUS status;
InitializeObjectAttributes(Obj_attrib,&KeyPath,OBJ_KERNEL_HANDLE,NULL,NULL);
status=ZwOpenKey(&KeyHandle,KEY_ALL_ACCESS,Obj_attrib);
if(!status==STATUS_SUCCESS)
{
DbgPrint("open fails!",status);
}
status=ZwDeleteValueKey(KeyHandle,&KeyName);
if(!status==STATUS_SUCCESS)
{
DbgPrint("Delete fails!");
}
ZwClose(KeyHandle);
DbgPrint("Delete!");
DriverObject->DriverUnload=OnUnLoad;
return STATUS_SUCCESS;
}

编译通过,加载蓝屏,哪里出错了?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
POBJECT_ATTRIBUTES Obj_attrib={0};

把指针学好怎么用再来玩驱动!~
2009-5-24 10:56
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
DbgPrint("open fails!",status);

这个...
2009-5-24 10:58
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
if(!status==STATUS_SUCCESS)
{
DbgPrint("Delete fails!");
}

这个改成
if(!NT_SUCCESS(status))
{
DbgPrint("Delete fails!");
}
要好一点。

问题太多了,回去打基础吧~~
2009-5-24 11:00
0
雪    币: 247
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
已经把你们说的修改完了,这次不蓝屏了,但是openhandle失败是为什么?
2009-5-24 11:03
0
雪    币: 247
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
改成这样了,帮我再看下,谢谢了
#include "ntddk.h"
#include "ntdef.h"
#include "string.h"

UNICODE_STRING  KeyPath=RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");

UNICODE_STRING  KeyName=RTL_CONSTANT_STRING(L"vmware-tray");
HANDLE KeyHandle;
OBJECT_ATTRIBUTES Obj_attrib={0};

VOID OnUnLoad(IN PDRIVER_OBJECT DriverOject)
{
DbgPrint("UnLoad!");
}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
{
NTSTATUS status;
InitializeObjectAttributes(&Obj_attrib,&KeyPath,OBJ_KERNEL_HANDLE,NULL,NULL);
status=ZwOpenKey(&KeyHandle,KEY_ALL_ACCESS,&Obj_attrib);
if(!NT_SUCCESS(status))
{
DbgPrint("open fails!");
}
status=ZwDeleteValueKey(KeyHandle,&KeyName);
if(!NT_SUCCESS(status))
{
DbgPrint("Delete fails!");
}
ZwClose(KeyHandle);
DbgPrint("Delete!");
DriverObject->DriverUnload=OnUnLoad;
return STATUS_SUCCESS;
}
2009-5-24 11:07
0
雪    币: 247
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
debugview监视到
open fails!
Delete fails!
2009-5-24 11:08
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
8
自己看看错误代码,自己找原因吧。另外你的程序逻辑就有问题,Open都失败了,还搞什么Delete?还是那句话:打好基础…
2009-5-24 11:29
0
雪    币: 247
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
该怎么打呀,给点建议好吗
2009-5-24 11:58
0
雪    币: 247
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
搞定了,原来InitializeObjectAttributes时要加OBJ_CASE_INSENSITIVE参数,谢谢两位!
2009-5-24 13:05
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
11
多看,多思考,多写,就是这样
2009-5-24 13:05
0
游客
登录 | 注册 方可回帖
返回
//