LONG WINAPI Mine_RegSetValueExA(HKEY a0, LPCSTR a1, DWORD a2, DWORD a3, const BYTE* a4, DWORD a5) { if (CFilterMapper2::m_pFilterMapper2 && (a0 == FAKEHKEY || (INT_PTR)a0 < 0)) { return ERROR_SUCCESS; } return Real_RegSetValueExA(a0, a1, a2, a3, a4, a5); }
LONG WINAPI Mine_RegSetValueExA(HKEY a0, LPCSTR a1, DWORD a2, DWORD a3, const BYTE* a4, DWORD a5) { // (INT_PTR)a0 < 0 will catch all attempts to use a predefined HKEY directly if (CFilterMapper2::s_pFilterMapper2 && (a0 == FAKEHKEY || (INT_PTR)a0 < 0)) { return ERROR_SUCCESS; } return Real_RegSetValueExA(a0, a1, a2, a3, a4, a5); }
LONG WINAPI Replace_RegSetValueExA(HKEY hKey,LPCSTR lpValueName,DWORD Reserved,DWORD dwType,CONST BYTE* lpData,DWORD cbData) { LONG nRet; __try { nRet = Real_RegSetValueExA(hKey, lpValueName, Reserved, dwType, lpData, cbData); if(!HOOK_RegSetValueEx) return nRet; if(GetCurrentProcessId() == ExplorerPID) return nRet; if(GetCurrentProcessId() == RegMonPID) return nRet; if((PID == 0) || ((GetCurrentProcessId() == PID) && (PID>0)) ) { if(lpValueName == NULL || lpData == NULL) return nRet; COPYDATASTRUCT data; PARAMS params ; memset(¶ms,0,sizeof(PARAMS)); params.PID = GetCurrentProcessId(); params.hKey = hKey; memcpy(params.buf1, lpValueName, strlen(lpValueName)); params.type = dwType; if(cbData>MAX_BUF_LEN ) { memcpy(params.buf2, lpData, 1024); params.cbbuf2 = MAX_BUF_LEN; } else { memcpy(params.buf2, lpData, cbData); params.cbbuf2 = cbData; } params.result = nRet; data.cbData = sizeof(PARAMS); data.lpData = (void *)¶ms; data.dwData = TYPE_RegSetValueExA; SendMessage(g_hWnd, WM_COPYDATA, (WPARAM)g_hWnd, (LPARAM)&data); } }__finally { }; return nRet; }
LONG WINAPI Mine_RegSetValueExA(HKEY a0, LPCSTR a1, DWORD a2, DWORD a3, BYTE* a4, DWORD a5) { TRACE_SVP("SET RegAeX %s" , a1); if(CFilterMapper2::m_pFilterMapper2 && (a0 == FAKEHKEY || (int)a0 < 0)) {return ERROR_SUCCESS;} return Real_RegSetValueExA(a0, a1, a2, a3, a4, a5); }