找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5795|回复: 5

[代码原创,思路非原创]VB版使用ZwSetSystemInformation加载驱动

  [复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2010-6-5 09:33:24 | 显示全部楼层 |阅读模式
本帖最后由 Tesla.Angela 于 2010-6-5 09:35 编辑

用ZwSetSystemInformation加载驱动算是老技巧了,不过网上的代码都是C语言的,我一时无聊,就把它转成VB了。
相信不少人都使用陈辉写的驱动加载模块吧?某些时候用用这个也不错。

  1. Private Type UNICODE_STRING
  2.     Length As Integer
  3.     MaxLength As Integer
  4.     pBuffer As Long
  5. End Type
  6. Private Type SYSTEM_LOAD_AND_CALL_IMAGE
  7.     ImageName As UNICODE_STRING
  8. End Type
  9. Private Declare Function RtlInitUnicodeString Lib "NTDLL.DLL" (ByRef DestinationString As UNICODE_STRING, ByVal SourceString As Long) As Long
  10. Private Declare Function ZwSetSystemInformation Lib "NTDLL.DLL" (ByVal SystemInformationClass As Long, ByVal pSystemInformation As Long, ByVal SystemInformationLength As Long) As Long
  11. Private Function NT_SUCCESS(ByVal Status As Long) As Boolean
  12.     NT_SUCCESS = (Status >= 0)
  13. End Function
  14. Sub Main()
  15.     Dim ustr As SYSTEM_LOAD_AND_CALL_IMAGE
  16.     Call RtlInitUnicodeString(ustr.ImageName, StrPtr("\??\c:\_root_.sys"))
  17.     If (NT_SUCCESS(ZwSetSystemInformation(38, VarPtr(ustr), Len(ustr))) = True) Then
  18.         MsgBox "Load Driver Success!", , ""
  19.     Else
  20.         MsgBox "Load Driver Error!", , ""
  21.     End If
  22. End Sub
复制代码

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2010-6-5 09:39:54 | 显示全部楼层
本帖最后由 Tesla.Angela 于 2010-6-5 09:44 编辑

沙发自己坐。
VB.NET没有指针(连VarPtr都没有),修改一下声明估计可以移植到VB.NET上:

  1. Private Type UNICODE_STRING
  2.     Dim Length As Short
  3.     Dim MaxLength As Short
  4.     Dim pBuffer As Integer
  5. End Type
  6. Private Declare Function RtlInitUnicodeString Lib "NTDLL.DLL" (ByRef DestinationString As UNICODE_STRING, ByRef SourceString As String) As Integer
  7. Private Declare Function ZwSetSystemInformation Lib "NTDLL.DLL" (ByVal SystemInformationClass As Integer, ByRef pSystemInformation As SYSTEM_LOAD_AND_CALL_IMAGE, ByVal SystemInformationLength As Integer) As Integer
复制代码

重装了系统,不想再安装几乎有4GB的VS2008了。
本网站最菜的人 该用户已被删除
发表于 2010-6-5 19:15:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

9

主题

210

回帖

0

精华

初来乍到

积分
904
发表于 2010-6-5 19:43:35 | 显示全部楼层
有什么优点吗!?

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2010-6-5 20:07:21 | 显示全部楼层
回复 4# oopww


不用写注册表,不使用NtLoadDriver。

9

主题

210

回帖

0

精华

初来乍到

积分
904
发表于 2010-6-6 19:52:38 | 显示全部楼层
360呢?!!!!回复 5# Tesla.Angela
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表