update cert hooks

This commit is contained in:
Kevin Trocolli
2024-02-21 03:43:44 -05:00
parent 3ae24469fa
commit fd2ad4424c
25 changed files with 323 additions and 20 deletions
+25 -2
View File
@@ -156,7 +156,9 @@ HCERTSTORE WINAPI hook_CertOpenStore(
DWORD dwFlags,
const void *pvPara)
{
if (lpszStoreProvider <= CERT_STORE_PROV_PKCS12) {
BYTE bfr[4096] = {0};
DWORD num_read = 0;
/*if (lpszStoreProvider <= CERT_STORE_PROV_PKCS12) {
dprintf("Cert: Open store for %p -> %S (%04X)\n", lpszStoreProvider, (wchar_t *)pvPara, (int)dwFlags);
} else {
dprintf("Cert: Open store for %s\n", lpszStoreProvider);
@@ -173,5 +175,26 @@ HCERTSTORE WINAPI hook_CertOpenStore(
}
dprintf("Cert: Failed to open store %08X\n", (int)err);
}
return ret;
return ret;*/
HANDLE f = CreateFileW(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (f != INVALID_HANDLE_VALUE) {
dprintf("Cert: Read file %S\n", path);
ReadFile(f, bfr, sizeof(bfr), &num_read, NULL);
CloseHandle(f);
if (bfr[0]) {
CRYPT_INTEGER_BLOB blob = {
.pbData = bfr,
.cbData = num_read
};
dprintf("Cert: detour open of %S to %S\n", (wchar_t *)pvPara, path);
HCERTSTORE ret = next_CertOpenStore(CERT_STORE_PROV_PKCS12, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, hCryptProv, dwFlags, &blob);
dprintf("Cert: Open %p\n", ret);
return ret;
}
}
return next_CertOpenStore(lpszStoreProvider, dwEncodingType, hCryptProv, dwFlags, pvPara);
}
+1 -1
View File
@@ -44,7 +44,7 @@ void cert_config_load(struct cert_config *cfg, const wchar_t *filename)
GetPrivateProfileStringW(
L"cert",
L"path",
L"cert",
L"cert.p12",
cfg->path,
_countof(cfg->path),
filename);
+1 -1
View File
@@ -113,5 +113,5 @@ static HRESULT syscfg_event_path(void *bytes, uint32_t *nbytes)
static HRESULT syscfg_log_path(void *bytes, uint32_t *nbytes)
{
return reg_hook_read_wstr(bytes, nbytes, L"D:\\log");
return reg_hook_read_wstr(bytes, nbytes, L"D:\\");
}