锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日本亚洲色大成网站WWW久久
,无码日韩人妻精品久久蜜桃
,蜜臀久久99精品久久久久久小说 http://www.shnenglu.com/vfdff/zh-cn Wed, 07 May 2025 13:53:59 GMT Wed, 07 May 2025 13:53:59 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(); } } ]]>
亚洲国产精久久久久久久 |
国产精品久久久久免费a∨ |
久久夜色精品国产网站 |
国内精品久久久久影院优
|
欧美色综合久久久久久 |
热综合一本伊人久久精品 |
久久国产色av免费看 |
久久精品无码午夜福利理论片 |
久久精品国产免费 |
久久天天婷婷五月俺也去 |
久久精品国产精品亚洲毛片 |
办公室久久精品 |
亚洲国产精品久久电影欧美 |
久久久久久综合一区中文字幕
|
久久国产精品一区二区 |
亚洲午夜无码AV毛片久久 |
99久久成人国产精品免费
|
久久久受www免费人成 |
亚洲精品乱码久久久久久蜜桃不卡 |
7国产欧美日韩综合天堂中文久久久久 |
久久人人爽人人爽人人片AV东京热 |
A级毛片无码久久精品免费 |
久久精品国产只有精品66 |
久久亚洲中文字幕精品有坂深雪
|
91久久精品电影 |
久久久久亚洲av无码专区导航 |
亚洲精品乱码久久久久久不卡 |
精品久久久久久成人AV |
久久香综合精品久久伊人 |
国产精品久久久久a影院 |
久久久久人妻一区精品果冻 |
久久不射电影网 |
99久久精品国内 |
久久福利青草精品资源站 |
伊人久久大香线蕉综合Av
|
精品久久久久久无码人妻蜜桃 |
99久久无码一区人妻a黑 |
欧美丰满熟妇BBB久久久 |
人妻少妇久久中文字幕一区二区 |
久久精品青青草原伊人 |
伊人久久大香线蕉亚洲五月天 |