首页
社区
课程
招聘
[讨论]内核中加载驱动
发表于: 2009-6-24 08:35 5708

[讨论]内核中加载驱动

2009-6-24 08:35
5708
有一驱动程序b.sys,在ring3下编写用户态程序调用ZwSetSystemInformation加载能成功,现想在a.sys中加载b.sys,但就是不成功,实在找不到原因,请大牛们帮忙看下,功能实现部分代码如下:
       int iBuffLen,ret;
       char   szDrvFullPath[256];
       char   szTmp[256]="C:\\nop.sys";
       ANSI_STRING TmpBuff;
       SYSTEM_LOAD_AND_CALL_IMAGE GregsImage;
       iBuffLen = sprintf(szDrvFullPath, "\\??\\%s", szTmp);
       szDrvFullPath[iBuffLen]=0;
       TmpBuff.Buffer = (PVOID)szDrvFullPath;
       TmpBuff.Length = (USHORT)iBuffLen;
       TmpBuff.MaximumLength = 256;
       RtlAnsiStringToUnicodeString(&(GregsImage.ModuleName),&TmpBuff,1);

       ret = ZwSetSystemInformation( 0x26, &GregsImage, 8 );
       if(  ret == 0 )   
             DbgPrint("Driver: %s loaded.  \n", szDrvFullPath);
       else
             DbgPrint("Driver: %s not loaded.   %x\n", szDrvFullPath,ret);

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

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
ZwSet加载需要在Session空间里啊,你可以Attach一下某个进程,比如winlogon.exe的进程,然后做加载,这样可能就成功了~
2009-6-24 13:54
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这样啊,小弟刚接触内核,兄台能给个例子代码么
2009-6-24 19:53
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
KeAttachProcess嘛~
2009-6-24 20:18
0
雪    币: 227
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不过很容易蓝屏
2009-6-24 22:36
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
蓝不蓝在于那个驱动,用这种方法加载的驱动需要很多注意事项~
2009-6-25 11:29
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
7
试试EngLoadImage EngFindImageProcAddress 看看..
2009-6-25 11:31
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
都什么注意事项啊
2009-6-26 11:37
0
雪    币: 247
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
既然a.sys已经进入内核了,为什么不用ZwLoadDriver而用ZwSet呢
2009-6-27 01:04
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
是哦,zwloaddriver不错
2009-6-30 11:06
0
游客
登录 | 注册 方可回帖
返回
//