Revert: Add automatically apply OpenSSL patch for Intel Gen 10+ CPUs

This commit is contained in:
2024-12-27 14:12:58 +00:00
parent 96bf8cab81
commit 0c28765bdd
8 changed files with 0 additions and 130 deletions

View File

@ -23,7 +23,6 @@
#include "platform/platform.h"
#include "platform/vfs.h"
#include "platform/system.h"
#include "platform/opensslpatch.h"
void platform_config_load(struct platform_config *cfg, const wchar_t *filename)
{
@ -42,7 +41,6 @@ void platform_config_load(struct platform_config *cfg, const wchar_t *filename)
nusec_config_load(&cfg->nusec, filename);
vfs_config_load(&cfg->vfs, filename);
system_config_load(&cfg->system, filename);
openssl_patch_config_load(&cfg->openssl, filename);
}
void amvideo_config_load(struct amvideo_config *cfg, const wchar_t *filename)
@ -363,16 +361,3 @@ void epay_config_load(struct epay_config *cfg, const wchar_t *filename)
cfg->enable = GetPrivateProfileIntW(L"epay", L"enable", 1, filename);
}
void openssl_patch_config_load(struct openssl_patch_config *cfg, const wchar_t *filename)
{
assert(cfg != NULL);
assert(filename != NULL);
cfg->enable = GetPrivateProfileIntW(
L"openssl",
L"enable",
1,
filename
);
}

View File

@ -36,4 +36,3 @@ void nusec_config_load(struct nusec_config *cfg, const wchar_t *filename);
void pcbid_config_load(struct pcbid_config *cfg, const wchar_t *filename);
void vfs_config_load(struct vfs_config *cfg, const wchar_t *filename);
void system_config_load(struct system_config *cfg, const wchar_t *filename);
void openssl_patch_config_load(struct openssl_patch_config *cfg, const wchar_t *filename);

View File

@ -35,7 +35,5 @@ platform_lib = static_library(
'vfs.h',
'system.c',
'system.h',
'opensslpatch.c',
'opensslpatch.h',
],
)

View File

@ -1,83 +0,0 @@
#include <windows.h>
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <intrin.h>
#include "util/dprintf.h"
#include "platform/opensslpatch.h"
int check_cpu() {
int cpui[4] = {0};
__cpuid(cpui, 0);
int nIds_ = cpui[0];
char vendor[0x20] = {0};
*((int*)vendor) = cpui[1];
*((int*)(vendor + 4)) = cpui[3];
*((int*)(vendor + 8)) = cpui[2];
int isIntel = (strcmp(vendor, "GenuineIntel") == 0);
if (isIntel && nIds_ >= 7) {
__cpuidex(cpui, 7, 0);
return (cpui[1] & (1 << 29)) != 0;
}
return 0;
}
static int is_env_variable_set(const char* variablename, const char* expectedvalue) {
char currentvalue[256];
DWORD length = GetEnvironmentVariableA(variablename, currentvalue, sizeof(currentvalue));
if (length > 0 && length < sizeof(currentvalue)) {
return strcmp(currentvalue, expectedvalue) == 0;
}
return 0;
}
static void openssl_patch(void) {
const char* variablename = "OPENSSL_ia32cap";
const char* variablevalue = "~0x20000000";
if (is_env_variable_set(variablename, variablevalue)) {
return;
}
HKEY hKey;
if (RegOpenKeyExA(HKEY_CURRENT_USER, "Environment", 0, KEY_SET_VALUE, &hKey) == ERROR_SUCCESS) {
if (RegSetValueExA(hKey, variablename, 0, REG_SZ, (const BYTE*)variablevalue, strlen(variablevalue) + 1) == ERROR_SUCCESS) {
dprintf("OpenSSL Patch: Applied successfully. User environment variable %s set to %s\n", variablename, variablevalue);
SendMessageTimeoutA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment", SMTO_ABORTIFHUNG, 5000, NULL);
dprintf(
"Please close this windows and reopen the game to enjoy.\n"
);
ExitProcess(0);
} else {
dprintf("OpenSSL Patch: Error: Failed to set the user environment variable.\n");
}
RegCloseKey(hKey);
} else {
dprintf("OpenSSL Patch: Error: Failed to open the user environment registry key.\n");
}
}
HRESULT openssl_patch_apply(const struct openssl_patch_config *cfg) {
HRESULT hr;
assert(cfg != NULL);
if (!cfg->enable) {
return S_FALSE;
}
if (check_cpu()) {
openssl_patch();
}
return S_OK;
}

View File

@ -1,7 +0,0 @@
#pragma once
struct openssl_patch_config {
int enable;
};
HRESULT openssl_patch_apply(const struct openssl_patch_config *cfg);

View File

@ -14,7 +14,6 @@
#include "platform/platform.h"
#include "platform/vfs.h"
#include "platform/system.h"
#include "platform/opensslpatch.h"
HRESULT platform_hook_init(
const struct platform_config *cfg,
@ -29,12 +28,6 @@ HRESULT platform_hook_init(
assert(platform_id != NULL);
assert(redir_mod != NULL);
hr = openssl_patch_apply(&cfg->openssl);
if (FAILED(hr)) {
return hr;
}
hr = amvideo_hook_init(&cfg->amvideo, redir_mod);
if (FAILED(hr)) {

View File

@ -14,7 +14,6 @@
#include "platform/pcbid.h"
#include "platform/vfs.h"
#include "platform/system.h"
#include "platform/opensslpatch.h"
struct platform_config {
struct amvideo_config amvideo;
@ -29,7 +28,6 @@ struct platform_config {
struct nusec_config nusec;
struct vfs_config vfs;
struct system_config system;
struct openssl_patch_config openssl;
};
HRESULT platform_hook_init(