• 大小: 8KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签:

资源简介

驱动加载工具zwloaddriver源代码

资源截图

代码片段和文件信息

#include 
#include 

typedef struct _LSA_UNICODE_STRING {
    USHORT Length;
    USHORT MaximumLength;
    PVOID Buffer;
} LSA_UNICODE_STRING *PLSA_UNICODE_STRING; 

typedef LSA_UNICODE_STRING UNICODE_STRING *PUNICODE_STRING;

// 申明ntdll中使用的函数
typedef DWORD (CALLBACK* RTLANSISTRINGTOUNICODESTRING)(PVOID PVOIDDWORD);
RTLANSISTRINGTOUNICODESTRING RtlAnsiStringToUnicodeString;
typedef DWORD (CALLBACK* RTLFREEUNICODESTRING)(PVOID);
RTLFREEUNICODESTRING RtlFreeUnicodeString;
typedef DWORD (CALLBACK* ZWLOADDRIVER)(PVOID);
ZWLOADDRIVER ZwLoadDriver;

int LoadDriver(char * szDrvName char * szDrvPath)
{
    //修改注册表启动驱动程序
    char szSubKey[200] szDrvFullPath[256];
    LSA_UNICODE_STRING buf1;
    LSA_UNICODE_STRING buf2;
    int iBuffLen;
    HKEY hkResult;
    char Data[4];
    DWORD dwOK;
    iBuffLen = sprintf(szSubKey“System\\CurrentControlSet\\Services\\%s“szDrvName);
    szSubKey[iBuffLen]=0;
    dwOK = RegCreateKey(HKEY_LOCAL_MACHINEszSubKey&hkResult);
    if(dwOK!=ERROR_SUCCESS)
        return 0;
    Data[0]=1;
    Data[1]=0;
    Data[2]=0;
    Data[3]=0;
    dwOK=RegSetValueEx(hkResult“Type“04(const unsigned char *)Data4);
    dwOK=RegSetValueEx(hkResult“ErrorControl“04(const unsigned char *)Data4);
    dwOK=RegSetValueEx(hkResult“Start“04(const unsigned char *)Data4);
    GetFullPathName(szDrvPath 256 szDrvFullPath NULL);   
    printf(“Loading driver: %s\r\n“ szDrvFullPath);
    iBuffLen = sprintf(szSubKey“\\??\\%s“szDrvFullPath);
    szSubKey[iBuffLen]=0;
    dwOK=RegSetValueEx(hkResult“ImagePath“01(const unsigned char *)szSubKeyiBuffLen);
    RegCloseKey(hkResult); 
    iBuffLen = sprintf(szSubKey“\\Registry\\Machine\\System\\CurrentControlSet\\Services\\%s“szDrvName);
    szSubKey[iBuffLen]=0;
    buf2.Buffer = (PVOID)szSubKey;
    buf2.Length = iBuffLen;
    RtlAnsiStringToUnicodeString(&buf1&buf21);
    //加载驱动程序
    dwOK = ZwLoadDriver(&buf1);
printf(“ZwLoadDriver return 0x%x \r\n“dwOK);
    RtlFreeUnicodeString(&buf1);
    iBuffLen=sprintf(szSubKey“%s%s\\Enum““System\\CurrentControlSet\\Services\\“szDrvName);
    szSubKey[iBuffLen]=0;
    //删除注册表项
    RegDeleteKey(HKEY_LOCAL_MACHINEszSubKey);
    iBuffLen=sprintf(szSubKey“%s%s\\Security““System\\CurrentControlSet\\Services\\“szDrvName);
    szSubKey[iBuffLen]=0;
    RegDeleteKey(HKEY_LOCAL_MACHINEszSubKey);
    iBuffLen=sprintf(szSubKey“%s%s““System\\CurrentControlSet\\Services\\“szDrvName);
    szSubKey[iBuffLen]=0;
    RegDeleteKey(HKEY_LOCAL_MACHINEszSubKey);
    iBuffLen=sprintf(szSubKey“\\\\.\\%s“szDrvName);
    szSubKey[iBuffLen]=0;
    return 1
}

BOOL EnablePrivilege(TCHAR *PrivilegeName)
{
HANDLE TokenHandle;
LUID   Luid;
BOOL result = FALSE;
DWORD RetLen;
TOKEN_PRIVILEGES LPrivileges;
if(!OpenProcessToken(GetCurrentProcess() TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY &TokenHandle))
return FALSE;
if(!LookupPrivilegeValue(NU

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        9216  2007-12-19 17:25  zwloaddriver\DrvLoader.exe
     文件        4608  2007-12-18 18:22  zwloaddriver\HReg.sys
     文件        5749  2007-12-19 17:12  zwloaddriver\zwloaddriver.cpp

评论

共有 条评论

相关资源