锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品久久久无码中文字幕,欧美精品乱码99久久蜜桃,久久国产香蕉一区精品 http://www.shnenglu.com/vfdff/zh-cn Wed, 07 May 2025 14:55:01 GMT Wed, 07 May 2025 14:55:01 GMT 60 C++涓殑mutable鍜寁olatile http://www.shnenglu.com/vfdff/archive/2020/11/21/217512.htmlvfdff vfdff Sat, 21 Nov 2020 03:25:00 GMT http://www.shnenglu.com/vfdff/archive/2020/11/21/217512.html http://www.shnenglu.com/vfdff/comments/217512.html http://www.shnenglu.com/vfdff/archive/2020/11/21/217512.html#Feedback 0 http://www.shnenglu.com/vfdff/comments/commentRss/217512.html http://www.shnenglu.com/vfdff/services/trackbacks/217512.html ]]>VC涓姞杞介┍鍔ㄧ▼搴?/title> http://www.shnenglu.com/vfdff/archive/2008/09/20/VC_driver_program.htmlvfdff vfdff Sat, 20 Sep 2008 09:38:00 GMT http://www.shnenglu.com/vfdff/archive/2008/09/20/VC_driver_program.html http://www.shnenglu.com/vfdff/comments/62358.html http://www.shnenglu.com/vfdff/archive/2008/09/20/VC_driver_program.html#Feedback 0 http://www.shnenglu.com/vfdff/comments/commentRss/62358.html http://www.shnenglu.com/vfdff/services/trackbacks/62358.html 浠g爜濡備笅錛?br> //HANDLE openDriver(void)鎵撳紑椹卞姩寤虹珛鐨勭鍙烽摼鎺ョ殑鍙ユ焺 //void uninstallDriver(void)鍗歌澆椹卞姩錛岃鎶妎penDriver鎵撳紑鐨勫彞鏌勫叧闂墠鍙互鎴愬姛鍗歌澆 #include <windows.h> #define DRV_NAME "DLPORTIO"http://椹卞姩鍚?br>#define DRV_FILENAME "DLPORTIO.sys"http://椹卞姩鏂囦歡 #define STATUS_SUCCESS ((NTSTATUS)0x00000000L) typedef LONG NTSTATUS; typedef struct _STRING { USHORT Length; USHORT MaximumLength; PCHAR Buffer; } ANSI_STRING, *PANSI_STRING; typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING, *PUNICODE_STRING; //********************************************************************************************* // Assign loaddriver priviledge to our process, so we can load our support driver. // //********************************************************************************************* BOOL getLoadDriverPriv() { HANDLE hToken; if(OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hToken)) { LUID huid; if(LookupPrivilegeValue(NULL, "SeLoadDriverPrivilege", &huid)) { LUID_AND_ATTRIBUTES priv; priv.Attributes = SE_PRIVILEGE_ENABLED; priv.Luid = huid; TOKEN_PRIVILEGES tp; tp.PrivilegeCount = 1; tp.Privileges[0] = priv; if(AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL)) { return TRUE; } } } return FALSE; } //********************************************************************************************* // Sets up the necessary registry settings to load the support driver // //********************************************************************************************* BOOL setupRegistry() { HKEY hkey; if(RegCreateKey(HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\"DRV_NAME, &hkey) != ERROR_SUCCESS) return FALSE; DWORD val; val = 1; if(RegSetValueEx(hkey, "Type", 0, REG_DWORD, (PBYTE)&val, sizeof(val)) != ERROR_SUCCESS) return FALSE; if(RegSetValueEx(hkey, "ErrorControl", 0, REG_DWORD, (PBYTE)&val, sizeof(val)) != ERROR_SUCCESS) return FALSE; val = 3; if(RegSetValueEx(hkey, "Start", 0, REG_DWORD, (PBYTE)&val, sizeof(val)) != ERROR_SUCCESS) return FALSE; char *imgName = "System32\DRIVERS\"DRV_FILENAME; if(RegSetValueEx(hkey, "ImagePath", 0, REG_EXPAND_SZ, (PBYTE)imgName, strlen(imgName)) != ERROR_SUCCESS) return FALSE; return TRUE; } //********************************************************************************************* // Actual code to load our driver into memory // //********************************************************************************************* BOOL loadDriver() { // call ntdll APIs HMODULE hntdll; NTSTATUS (WINAPI *_RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString,IN PANSI_STRING SourceString,IN BOOLEAN); VOID (WINAPI *_RtlInitAnsiString) (IN OUT PANSI_STRING DestinationString, IN PCHAR SourceString); NTSTATUS (WINAPI * _ZwLoadDriver) (IN PUNICODE_STRING DriverServiceName); NTSTATUS (WINAPI * _ZwUnloadDriver) (IN PUNICODE_STRING DriverServiceName); VOID (WINAPI * _RtlFreeUnicodeString) (IN PUNICODE_STRING UnicodeString); hntdll = GetModuleHandle("ntdll.dll"); *(FARPROC *)&_ZwLoadDriver = GetProcAddress(hntdll, "NtLoadDriver"); *(FARPROC *)&_ZwUnloadDriver = GetProcAddress(hntdll, "NtUnloadDriver"); *(FARPROC *)&_RtlAnsiStringToUnicodeString = GetProcAddress(hntdll, "RtlAnsiStringToUnicodeString"); *(FARPROC *)&_RtlInitAnsiString = GetProcAddress(hntdll, "RtlInitAnsiString"); *(FARPROC *)&_RtlFreeUnicodeString = GetProcAddress(hntdll, "RtlFreeUnicodeString"); if(_ZwLoadDriver && _ZwUnloadDriver && _RtlAnsiStringToUnicodeString && _RtlInitAnsiString && _RtlFreeUnicodeString) { ANSI_STRING aStr; _RtlInitAnsiString(&aStr, "\Registry\Machine\System\CurrentControlSet\Services\"DRV_NAME); UNICODE_STRING uStr; if(_RtlAnsiStringToUnicodeString(&uStr, &aStr, TRUE) != STATUS_SUCCESS) return FALSE; else { if(_ZwLoadDriver(&uStr) == STATUS_SUCCESS) { _RtlFreeUnicodeString(&uStr); return TRUE; } _RtlFreeUnicodeString(&uStr); } } return FALSE; } //********************************************************************************************* // Actual code to remove our driver from memory // //********************************************************************************************* BOOL unloadDriver() { // call ntdll APIs HMODULE hntdll; NTSTATUS (WINAPI * _RtlAnsiStringToUnicodeString) (PUNICODE_STRING DestinationString, IN PANSI_STRING SourceString, IN BOOLEAN); VOID (WINAPI *_RtlInitAnsiString) (IN OUT PANSI_STRING DestinationString, IN PCHAR SourceString); NTSTATUS (WINAPI * _ZwLoadDriver) (IN PUNICODE_STRING DriverServiceName); NTSTATUS (WINAPI * _ZwUnloadDriver) (IN PUNICODE_STRING DriverServiceName); VOID (WINAPI * _RtlFreeUnicodeString) (IN PUNICODE_STRING UnicodeString); hntdll = GetModuleHandle("ntdll.dll"); *(FARPROC *)&_ZwLoadDriver = GetProcAddress(hntdll, "NtLoadDriver"); *(FARPROC *)&_ZwUnloadDriver = GetProcAddress(hntdll, "NtUnloadDriver"); *(FARPROC *)&_RtlAnsiStringToUnicodeString = GetProcAddress(hntdll, "RtlAnsiStringToUnicodeString"); *(FARPROC *)&_RtlInitAnsiString = GetProcAddress(hntdll, "RtlInitAnsiString"); *(FARPROC *)&_RtlFreeUnicodeString = GetProcAddress(hntdll, "RtlFreeUnicodeString"); if(_ZwLoadDriver && _ZwUnloadDriver && _RtlAnsiStringToUnicodeString && _RtlInitAnsiString && _RtlFreeUnicodeString) { ANSI_STRING aStr; _RtlInitAnsiString(&aStr, "\Registry\Machine\System\CurrentControlSet\Services\"DRV_NAME); UNICODE_STRING uStr; if(_RtlAnsiStringToUnicodeString(&uStr, &aStr, TRUE) != STATUS_SUCCESS) return FALSE; else { if(_ZwUnloadDriver(&uStr) == STATUS_SUCCESS) { _RtlFreeUnicodeString(&uStr); return TRUE; } _RtlFreeUnicodeString(&uStr); } } return FALSE; } //********************************************************************************************* // Removes our driver file and registry settings // //********************************************************************************************* void cleanupDriver(void) { char sysDir[MAX_PATH + 1]; GetSystemDirectory(sysDir, MAX_PATH); strncat(sysDir, "\drivers\"DRV_FILENAME, MAX_PATH); DeleteFile(sysDir); RegDeleteKey(HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\"DRV_NAME"\Enum"); RegDeleteKey(HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\"DRV_NAME); } //********************************************************************************************* // Attempts to get a handle to our kernel driver. If fails, try to install the driver. // //********************************************************************************************* HANDLE openDriver(void) { HANDLE hDevice; //CreateFile鎵撳紑椹卞姩寤虹珛鐨勭鍙烽摼鎺ワ紝寰楁牴鎹┍鍔ㄤ腑寤虹珛鐨勫悕瀛楁洿鏀?br> hDevice = CreateFile("\\.\"DRV_NAME, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hDevice == INVALID_HANDLE_VALUE) { char drvFullPath[MAX_PATH+1]; char *filePart; ZeroMemory(drvFullPath, MAX_PATH); GetFullPathName(DRV_FILENAME, MAX_PATH, drvFullPath, &filePart); //printf("%s ", drvFullPath); HANDLE hFile = CreateFile(drvFullPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if(hFile == INVALID_HANDLE_VALUE) { //printf("Cannot find required driver file %s ", drvFullPath); AfxMessageBox("Cannot find required driver file"); return INVALID_HANDLE_VALUE; } else { CloseHandle(hFile); char sysDir[MAX_PATH + 1]; GetSystemDirectory(sysDir, MAX_PATH); strncat(sysDir, "\drivers\"DRV_FILENAME, MAX_PATH); CopyFile(drvFullPath, sysDir, TRUE); if(!getLoadDriverPriv()) { //printf("Error getting load driver privilege! "); AfxMessageBox("Error getting load driver privilege! "); } else { if(!setupRegistry()) { //printf("Error setting driver registry keys! Make sure you are running this as Administrator. "); AfxMessageBox("Error setting driver registry keys! Make sure you are running this as Administrator. "); } else { loadDriver(); hDevice = CreateFile("\\.\"DRV_NAME, GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hDevice == INVALID_HANDLE_VALUE) { //printf("Error loading kernel support driver! Make sure you are running this as Administrator. "); AfxMessageBox("Error loading kernel support driver! Make sure you are running this as Administrator. "); } else { AfxMessageBox("loading kernel support driver success"); } } } cleanupDriver(); } } return hDevice; } //********************************************************************************************* // Remove our kernel driver from memory // //********************************************************************************************* void uninstallDriver(void) { char drvFullPath[MAX_PATH+1]; char *filePart; ZeroMemory(drvFullPath, MAX_PATH); GetFullPathName(DRV_FILENAME, MAX_PATH, drvFullPath, &filePart); HANDLE hFile = CreateFile(drvFullPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if(hFile == INVALID_HANDLE_VALUE) { //printf("Cannot find required driver file %s ", drvFullPath); AfxMessageBox("Cannot find required driver file "); return; } else { CloseHandle(hFile); char sysDir[MAX_PATH + 1]; GetSystemDirectory(sysDir, MAX_PATH); strncat(sysDir, "\drivers\"DRV_FILENAME, MAX_PATH); CopyFile(drvFullPath, sysDir, TRUE); if(!getLoadDriverPriv()) { //printf("Error getting load driver privilege! "); AfxMessageBox("Error getting load driver privilege! "); } else { if(!setupRegistry()) { //printf("Error setting driver registry keys! Make sure you are running this as Administrator. "); AfxMessageBox("Error setting driver registry keys! Make sure you are running this as Administrator. "); } else { if(unloadDriver()) //printf("Support driver successfully unloaded. "); AfxMessageBox("Support driver successfully unloaded. "); else //printf("Unload support driver failed. It is probably not loaded. "); AfxMessageBox("Unload support driver failed. It is probably not loaded. "); } } cleanupDriver(); } } ]]>
精品久久久久久 |
无码人妻少妇久久中文字幕
|
久久婷婷五月综合国产尤物app |
精品国产VA久久久久久久冰 |
人人狠狠综合久久亚洲婷婷 |
国产99久久久国产精品小说 |
日本免费一区二区久久人人澡 |
欧美激情精品久久久久 |
97久久精品人人澡人人爽 |
www性久久久com |
久久成人国产精品一区二区 |
久久福利青草精品资源站 |
亚洲精品WWW久久久久久 |
久久人人爽人人爽人人片AV麻豆 |
99国产欧美久久久精品蜜芽 |
精品综合久久久久久97 |
青青草原综合久久大伊人 |
国产精品一久久香蕉国产线看观看 |
91精品婷婷国产综合久久 |
亚洲AV无码久久 |
少妇久久久久久久久久 |
久久99精品久久久久久噜噜
|
亚洲а∨天堂久久精品9966 |
久久婷婷五月综合国产尤物app |
久久国产免费 |
色婷婷久久久SWAG精品 |
久久国产成人精品麻豆 |
99久久精品国产一区二区 |
日日噜噜夜夜狠狠久久丁香五月 |
7国产欧美日韩综合天堂中文久久久久 |
亚洲精品乱码久久久久久蜜桃图片
|
国产综合免费精品久久久 |
国内精品久久久久影院一蜜桃
|
99久久无码一区人妻 |
久久国产免费观看精品3 |
久久99精品国产一区二区三区 |
久久精品日日躁夜夜躁欧美 |
亚洲人成无码www久久久 |
久久亚洲欧洲国产综合 |
久久涩综合 |
亚洲中文字幕无码久久2017 |