锘??xml version="1.0" encoding="utf-8" standalone="yes"?>新狼窝色AV性久久久久久,国产精品久久亚洲不卡动漫,久久99精品国产麻豆宅宅 http://www.shnenglu.com/vfdff/category/6864.htmlzh-cn Sat, 21 Nov 2020 06:20:24 GMT Sat, 21 Nov 2020 06:20:24 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(); } } ]]>
久久夜色精品国产 |
AV无码久久久久不卡蜜桃 |
久久久国产精品 |
2021久久精品免费观看 |
日韩久久久久久中文人妻
|
午夜精品久久久久 |
三上悠亚久久精品 |
久久福利片 |
久久国产乱子伦精品免费强 |
国内精品久久久久久久久电影网 |
欧美日韩精品久久免费 |
久久99精品国产 |
日韩精品久久久久久久电影蜜臀 |
777久久精品一区二区三区无码 |
国产美女亚洲精品久久久综合 |
国产成人香蕉久久久久
|
久久精品成人国产午夜 |
久久男人中文字幕资源站 |
国产91色综合久久免费分享 |
噜噜噜色噜噜噜久久 |
国产精品永久久久久久久久久 |
蜜臀av性久久久久蜜臀aⅴ |
亚洲人成网站999久久久综合 |
天天综合久久久网 |
精品久久久噜噜噜久久久 |
无码国内精品久久人妻 |
色综合久久夜色精品国产 |
久久免费99精品国产自在现线
|
精品国产乱码久久久久久呢 |
精品久久久久中文字幕一区 |
好属妞这里只有精品久久 |
亚洲级αV无码毛片久久精品 |
国产精品亚洲综合久久 |
久久久亚洲精品蜜桃臀 |
久久久艹 |
久久精品国产亚洲AV影院 |
久久精品国产99国产精品亚洲 |
久久国产精品偷99 |
色婷婷久久久SWAG精品 |
国产精品亚洲综合久久 |
亚洲国产精品成人久久 |