// RegDeleteValueA替换 LONG WINAPI Replace_RegQueryValueExA(HKEY hKey, LPCSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType, LPBYTE lpData,LPDWORD lpcbData) { LONG nRet; __try { nRet = Real_RegQueryValueExA(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData); if(!HOOK_RegQueryValueEx) return nRet; if(GetCurrentProcessId() == ExplorerPID) return nRet; if(GetCurrentProcessId() == RegMonPID) return nRet; if((PID == 0) || ((GetCurrentProcessId() == PID) && (PID>0)) ) { if(nRet != ERROR_SUCCESS) return nRet; COPYDATASTRUCT data; PARAMS params; memset(¶ms,0,sizeof(PARAMS)); params.PID = GetCurrentProcessId(); params.hKey = hKey; if(lpValueName == NULL || /*lpType == NULL ||*/ lpData == NULL || lpcbData == NULL) return nRet; memcpy(params.buf1, lpValueName, strlen(lpValueName)); if(lpType == NULL) params.type = 0; else params.type = *lpType; if(*lpcbData == 0) { return nRet; } else if(*lpcbData>MAX_BUF_LEN ) { memcpy(params.buf2, lpData, 1024); params.cbbuf2 = MAX_BUF_LEN; } else { memcpy(params.buf2, lpData, *lpcbData); params.cbbuf2 = *lpcbData; } params.result = nRet; data.cbData = sizeof(PARAMS); data.lpData = (void *)¶ms; data.dwData = TYPE_RegQueryValueExA; ::SendMessage(g_hWnd, WM_COPYDATA, (WPARAM)g_hWnd, (LPARAM)&data); } }__finally { }; return nRet; }
LONG WINAPI Mine_RegQueryValueExA(HKEY a0, LPCSTR a1, LPDWORD a2, LPDWORD a3, LPBYTE a4, LPDWORD a5) { if (CFilterMapper2::m_pFilterMapper2 && a0 == FAKEHKEY) { *a5 = 0; return ERROR_SUCCESS; } return Real_RegQueryValueExA(a0, a1, a2, a3, a4, a5); }
LONG WINAPI Mine_RegQueryValueExA(HKEY a0, LPCSTR a1, LPDWORD a2, LPDWORD a3, LPBYTE a4, LPDWORD a5) { TRACE_SVP("Mine_RegQueryValueExA %s" , a1); if(a1){ if ( (a0 == (FAKEHKEY+1) || a0 == (FAKEHKEY+3) )){ //*a3 = REG_SZ; TRACE_SVP( "Mine_RegQueryValueExA Serial %s %u %u", a1, *a5, a4); if(*a5 < 40){ a4 = (LPBYTE)new char[40]; *a5 = 40; } if( _strcmpi(a1, "Serial") == 0){ if( a0 == (FAKEHKEY+3)) strcpy_s((char *)a4, *a5, "AFGD2R-3VRY6U-RBY69G-34NQAX-RUGX00"); else strcpy_s((char *)a4, *a5, "03JUN-10K9Y-CORE-0CLQV-JOTFL"); } if( _strcmpi(a1, "User") == 0){ if( a0 == (FAKEHKEY+3)) strcpy_s((char *)a4, *a5, "HERiTAGE"); else strcpy_s((char *)a4, *a5, "HERiTAGE"); } return ERROR_SUCCESS; } if(_strcmpi(a1, "AVC 7x Deblock") == 0){ *(DWORD*)a4 = 1; return ERROR_SUCCESS; } if(_strcmpi(a1, "AVC 7x Deinterlace") == 0){ *(DWORD*)a4 = 1; return ERROR_SUCCESS; } if(_strcmpi(a1, "AVC 7x HwDeinterlace") == 0){ *(DWORD*)a4 = 0; return ERROR_SUCCESS; } if(_strcmpi(a1, "AVC 7x DisplayOrder") == 0){ *(DWORD*)a4 = 0; return ERROR_SUCCESS; } if(_strcmpi(a1, "AVC 7x Logo") == 0){ *(DWORD*)a4 = 0; return ERROR_SUCCESS; } } if(CFilterMapper2::m_pFilterMapper2 && a0 == FAKEHKEY) {*a5 = 0; return ERROR_SUCCESS;} LONG ret = Real_RegQueryValueExA(a0, a1, a2, a3, a4, a5); if(a1 && a0 == (FAKEHKEY+2)){ TRACE_SVP( "Mine_RegQueryValueExA %s %u %u %s", a1, a3, a4, a4); } if(a1 && _strcmpi(a1, "UIUseHVA") == 0){ TRACE_SVP( "Mine_RegQueryValueExA %s %u %u ", a1, a3, a4); *(DWORD*)a4 = 0; return ERROR_SUCCESS; } return ret; }