diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-05-06 19:45:38 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-06 13:45:38 +0200 |
| commit | 8d7db7f1fb1002adf06a9a3a59302d6a8f8f989a (patch) | |
| tree | fd5675bec67ddd8ecdc568b4de7885d53e8e8202 /src/tools/wine_tools.c | |
| parent | 11563f3b62be60d443bcbcd33d02555ef6aa1ba5 (diff) | |
| download | box64-8d7db7f1fb1002adf06a9a3a59302d6a8f8f989a.tar.gz box64-8d7db7f1fb1002adf06a9a3a59302d6a8f8f989a.zip | |
Added a simple PE loaded dedicated for volatileMetadata (#2607)
Diffstat (limited to 'src/tools/wine_tools.c')
| -rw-r--r-- | src/tools/wine_tools.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/tools/wine_tools.c b/src/tools/wine_tools.c index 8b0edf14..86a91598 100644 --- a/src/tools/wine_tools.c +++ b/src/tools/wine_tools.c @@ -136,16 +136,11 @@ void dynarec_wine_prereserve() } #endif -void DetectUnityPlayer(int fd) +void DetectUnityPlayer(char* filename) { static int unityplayer_detected = 0; - if (fd > 0 && BOX64ENV(unityplayer) && !unityplayer_detected) { - char filename[4096]; - char buf[128]; - sprintf(buf, "/proc/self/fd/%d", fd); - ssize_t r = readlink(buf, filename, sizeof(filename) - 1); - if (r != -1) filename[r] = 0; - if (r > 0 && strlen(filename) > strlen("UnityPlayer.dll") && !strcasecmp(filename + strlen(filename) - strlen("UnityPlayer.dll"), "UnityPlayer.dll")) { + if (!filename && BOX64ENV(unityplayer) && !unityplayer_detected) { + if (strlen(filename) > strlen("UnityPlayer.dll") && !strcasecmp(filename + strlen(filename) - strlen("UnityPlayer.dll"), "UnityPlayer.dll")) { printf_log(LOG_NONE, "Detected UnityPlayer.dll\n"); #ifdef DYNAREC if (!BOX64ENV(dynarec_strongmem)) { @@ -156,4 +151,4 @@ void DetectUnityPlayer(int fd) unityplayer_detected = 1; } } -} \ No newline at end of file +} |