锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧洲日产国码无码久久99,国产精品免费久久久久电影网,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(); } } ]]>
久久婷婷五月综合成人D啪 |
青青草原精品99久久精品66 |
91久久九九无码成人网站 |
91精品国产91久久久久久青草 |
久久亚洲国产午夜精品理论片 |
久久成人精品 |
久久精品国产AV一区二区三区 |
av无码久久久久久不卡网站 |
国产激情久久久久影院小草 |
国产成人综合久久精品红 |
精品久久久久久无码专区
|
久久久久综合中文字幕 |
人妻无码αv中文字幕久久琪琪布 |
久久精品蜜芽亚洲国产AV |
久久精品无码av |
久久久久久狠狠丁香 |
99久久精品国产一区二区 |
免费观看成人久久网免费观看 |
久久亚洲精品无码VA大香大香 |
国产成人久久精品区一区二区 |
中文字幕无码久久人妻 |
久久国产精品波多野结衣AV |
亚洲第一极品精品无码久久 |
久久人人爽人人精品视频 |
亚洲国产精品久久久久婷婷老年
|
久久亚洲中文字幕精品一区 |
品成人欧美大片久久国产欧美...
品成人欧美大片久久国产欧美
|
久久精品国产99久久久香蕉 |
国产国产成人精品久久 |
亚洲精品乱码久久久久久中文字幕
|
国产精品内射久久久久欢欢 |
久久久精品2019免费观看 |
国产精品久久久久久久app |
久久亚洲国产成人影院网站 |
99精品久久久久久久婷婷 |
狠狠色丁香婷婷久久综合不卡 |
亚洲综合日韩久久成人AV |
久久AV无码精品人妻糸列 |
偷窥少妇久久久久久久久 |
亚洲精品午夜国产va久久 |
一本色综合久久 |