-
-
[讨论]若是我用驱动改注册表之类的怎么与应用程序交换?
-
发表于: 2009-12-4 07:55 3443
-
不知何时我这里的ifmo键不能新建值[可以建项][[[不知是eset还是360,或者是别的原因导致的,因为我没去把这些开机不启动]]]],我用驱动写个注册表看了下,竞然可以写入进去,,若是用应用程序来控制,我只想出用createfile 或者读设备这个来控制,然后在他产生的irp的涵数里写入驱动代码。
#include <ntddk.h> #define imforeg L"\\Registry\\Machine\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options" // Registry\Machine VOID SetReg(); VOID MyUnload(PDRIVER_OBJECT mydriver); NTSTATUS DriverEntry(IN PDRIVER_OBJECT mydriver,IN PUNICODE_STRING mrregpath) { mydriver->DriverUnload=MyUnload; SetReg(); return STATUS_SUCCESS; } VOID SetReg() { OBJECT_ATTRIBUTES objectattributes,subobjectattributes; UNICODE_STRING imfo,valuename; HANDLE hreg,subhreg; NTSTATUS status; ULONG rretrun; PWSTR pointstr; RtlInitUnicodeString(&imfo,imforeg); InitializeObjectAttributes(&objectattributes,&imfo,OBJ_CASE_INSENSITIVE,NULL,NULL); status=ZwOpenKey(&hreg,KEY_ALL_ACCESS,&objectattributes); if (NT_SUCCESS(status)) { KdPrint(("Open Success\n")); } RtlInitUnicodeString(&imfo,L"cmd.exe"); InitializeObjectAttributes(&subobjectattributes,&imfo,OBJ_CASE_INSENSITIVE,hreg,NULL); status=ZwCreateKey(&subhreg,KEY_ALL_ACCESS,&subobjectattributes,0, NULL,REG_OPTION_NON_VOLATILE,&rretrun); if (NT_SUCCESS(status)) { if(rretrun==REG_CREATED_NEW_KEY) { KdPrint(("create\n")); }else if(rretrun==REG_OPENED_EXISTING_KEY) { KdPrint(("Open\n")); } } RtlInitUnicodeString(&valuename,L"Debugger"); pointstr=L"c:\\a.exe"; ZwSetValueKey(subhreg,&valuename,0,REG_SZ,pointstr,wcslen(pointstr)*2+2); ZwClose(subhreg); ZwClose(hreg); } VOID MyUnload(PDRIVER_OBJECT mydriver) { KdPrint(("Close\n")); }
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
赞赏
他的文章
- 求一个ifs ddk下载地址。xp下的。 3840
- [原创]聊一下! 27191
- [讨论]若是我用驱动改注册表之类的怎么与应用程序交换? 3444
- [求助]驱动里有无与wsprintf这个函数差不多的? 6436
- [求助]扩展设备保存注册表的路径有时可以显示正常有时不正常! 4116
看原图
赞赏
雪币:
留言: