mirror of
https://gitea.tendokyu.moe/TeamTofuShop/taitools.git
synced 2026-10-06 05:38:01 +03:00
update cert hooks
This commit is contained in:
+25
-2
@@ -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
@@ -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
@@ -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:\\");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user