锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品成人久久蜜臀,国产亚洲美女精品久久久2020,久久久WWW成人 http://m.shnenglu.com/vfdff/zh-cn Sat, 28 Jun 2025 12:26:57 GMT Sat, 28 Jun 2025 12:26:57 GMT 60 C++涓殑mutable鍜寁olatile http://m.shnenglu.com/vfdff/archive/2020/11/21/217512.htmlvfdff vfdff Sat, 21 Nov 2020 03:25:00 GMT http://m.shnenglu.com/vfdff/archive/2020/11/21/217512.html http://m.shnenglu.com/vfdff/comments/217512.html http://m.shnenglu.com/vfdff/archive/2020/11/21/217512.html#Feedback 0 http://m.shnenglu.com/vfdff/comments/commentRss/217512.html http://m.shnenglu.com/vfdff/services/trackbacks/217512.html ]]>VC涓姞杞介┍鍔ㄧ▼搴?/title> http://m.shnenglu.com/vfdff/archive/2008/09/20/VC_driver_program.htmlvfdff vfdff Sat, 20 Sep 2008 09:38:00 GMT http://m.shnenglu.com/vfdff/archive/2008/09/20/VC_driver_program.html http://m.shnenglu.com/vfdff/comments/62358.html http://m.shnenglu.com/vfdff/archive/2008/09/20/VC_driver_program.html#Feedback 0 http://m.shnenglu.com/vfdff/comments/commentRss/62358.html http://m.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(); } } ]]>
久久免费的精品国产V∧ |
久久久久亚洲AV成人网人人网站 |
亚洲精品乱码久久久久66 |
国产亚洲精久久久久久无码77777 |
国产成人精品综合久久久 |
人人狠狠综合久久88成人 |
久久精品国内一区二区三区 |
欧美与黑人午夜性猛交久久久
|
亚洲国产高清精品线久久
|
精品久久久久久久久中文字幕 |
热99re久久国超精品首页 |
午夜视频久久久久一区 |
色欲久久久天天天综合网精品 |
青青草国产精品久久久久 |
偷窥少妇久久久久久久久 |
免费国产99久久久香蕉 |
一本一道久久a久久精品综合 |
97久久精品午夜一区二区 |
久久综合精品国产一区二区三区 |
日韩av无码久久精品免费 |
无码任你躁久久久久久久 |
99久久国语露脸精品国产 |
久久久久久久波多野结衣高潮 |
66精品综合久久久久久久 |
亚洲中文字幕久久精品无码APP |
久久国产视频网 |
国产精品久久久久久影院 |
综合网日日天干夜夜久久 |
国产精品99久久久久久猫咪
|
亚洲国产成人精品女人久久久
|
99久久精品这里只有精品 |
久久成人国产精品 |
偷偷做久久久久网站 |
久久婷婷午色综合夜啪 |
欧美与黑人午夜性猛交久久久 |
99久久精品国产综合一区 |
波多野结衣中文字幕久久 |
久久综合狠狠综合久久 |
亚洲人成网亚洲欧洲无码久久 |
伊人色综合九久久天天蜜桃 |
婷婷久久精品国产 |