From a9be2fd4d98aa206813dbc89428f736f595a65c2 Mon Sep 17 00:00:00 2001 From: longpanda Date: Thu, 14 Oct 2021 11:27:22 +0800 Subject: [PATCH] Improvement for some special WinPE --- .../grub-2.04/grub-core/ventoy/ventoy_def.h | 2 + .../grub-core/ventoy/ventoy_windows.c | 77 ++- INSTALL/ventoy/vtoyjump32.exe | Bin 114688 -> 114176 bytes INSTALL/ventoy/vtoyjump64.exe | Bin 135680 -> 135168 bytes vtoyjump/vtoyjump/vtoyjump.c | 503 +++++++----------- vtoyjump/vtoyjump/vtoyjump.vcxproj | 4 +- 6 files changed, 277 insertions(+), 309 deletions(-) diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h index d7171bc0..1099cefb 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h @@ -21,6 +21,8 @@ #ifndef __VENTOY_DEF_H__ #define __VENTOY_DEF_H__ +#define VTOY_MAX_DIR_DEPTH 32 + #define VTOY_MAX_SCRIPT_BUF (4 * 1024 * 1024) #define VTOY_PART_BUF_LEN (128 * 1024) diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c index a35680aa..e4c9aa6a 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c @@ -776,6 +776,67 @@ end: return ret; } +static int parse_custom_setup_path(char *cmdline, const char **path, char *exefile) +{ + int i = 0; + int len = 0; + char *pos1 = NULL; + char *pos2 = NULL; + + if ((cmdline[0] == 'x' || cmdline[0] == 'X') && cmdline[1] == ':') + { + pos1 = pos2 = cmdline + 3; + + while (i < VTOY_MAX_DIR_DEPTH && *pos2) + { + while (*pos2 && *pos2 != '\\' && *pos2 != '/') + { + pos2++; + } + + path[i++] = pos1; + + if (*pos2 == 0) + { + break; + } + + *pos2 = 0; + pos1 = pos2 + 1; + pos2 = pos1; + } + + if (i == 0 || i >= VTOY_MAX_DIR_DEPTH) + { + return 1; + } + } + else + { + path[i++] = "Windows"; + path[i++] = "System32"; + path[i++] = cmdline; + } + + pos1 = (char *)path[i - 1]; + while (*pos1 != ' ' && *pos1 != '\t' && *pos1) + { + pos1++; + } + *pos1 = 0; + + len = (int)grub_strlen(path[i - 1]); + if (len < 4 || grub_strcasecmp(path[i - 1] + len - 4, ".exe") != 0) + { + grub_snprintf(exefile, 256, "%s.exe", path[i - 1]); + path[i - 1] = exefile; + } + + + debug("custom setup: %d <%s>\n", i, path[i - 1]); + return 0; +} + static wim_directory_entry * search_replace_wim_dirent ( grub_file_t file, @@ -786,38 +847,44 @@ static wim_directory_entry * search_replace_wim_dirent ) { int ret; + char exefile[256] = {0}; char cmdline[256] = {0}; wim_directory_entry *wim_dirent = NULL; wim_directory_entry *pecmd_dirent = NULL; const char *peset_path[] = { "Windows", "System32", "peset.exe", NULL }; const char *pecmd_path[] = { "Windows", "System32", "pecmd.exe", NULL }; const char *winpeshl_path[] = { "Windows", "System32", "winpeshl.exe", NULL }; + const char *custom_path[VTOY_MAX_DIR_DEPTH + 1] = { NULL }; pecmd_dirent = search_full_wim_dirent(meta_data, dir, pecmd_path); debug("search pecmd.exe %p\n", pecmd_dirent); if (pecmd_dirent) { - ret = parse_registry_setup_cmdline(file, head, lookup, meta_data, dir, cmdline, sizeof(cmdline)); + ret = parse_registry_setup_cmdline(file, head, lookup, meta_data, dir, cmdline, sizeof(cmdline) - 1); if (0 == ret) { debug("registry setup cmdline:<%s>\n", cmdline); - ventoy_str_toupper(cmdline); - if (grub_strncmp(cmdline, "PECMD", 5) == 0) + if (grub_strncasecmp(cmdline, "PECMD", 5) == 0) { wim_dirent = pecmd_dirent; } - else if (grub_strncmp(cmdline, "PESET", 5) == 0) + else if (grub_strncasecmp(cmdline, "PESET", 5) == 0) { wim_dirent = search_full_wim_dirent(meta_data, dir, peset_path); debug("search peset.exe %p\n", wim_dirent); } - else if (grub_strncmp(cmdline, "WINPESHL", 8) == 0) + else if (grub_strncasecmp(cmdline, "WINPESHL", 8) == 0) { wim_dirent = search_full_wim_dirent(meta_data, dir, winpeshl_path); debug("search winpeshl.exe %p\n", wim_dirent); } + else if (0 == parse_custom_setup_path(cmdline, custom_path, exefile)) + { + wim_dirent = search_full_wim_dirent(meta_data, dir, custom_path); + debug("search custom path %p\n", wim_dirent); + } if (wim_dirent) { diff --git a/INSTALL/ventoy/vtoyjump32.exe b/INSTALL/ventoy/vtoyjump32.exe index 9541db5bd96c29f75e03ce1a68c3264eb055b9f1..7259ef24b347b74b6fbd94541efa6e5c35cc3452 100644 GIT binary patch delta 24716 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 delta 24952 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 rl3-F}(qOW{3hA>S&z$5_x64La` diff --git a/INSTALL/ventoy/vtoyjump64.exe b/INSTALL/ventoy/vtoyjump64.exe index 7e28387d9855be1afd9cb3956c381dd5910f81a0..4693f2e63091a4299c5d6f4e16320b498a2d546b 100644 GIT binary patch delta 46920 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 F0swkCLN)*Z delta 46955 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 diff --git a/vtoyjump/vtoyjump/vtoyjump.c b/vtoyjump/vtoyjump/vtoyjump.c index 68586a4a..46a5fceb 100644 --- a/vtoyjump/vtoyjump/vtoyjump.c +++ b/vtoyjump/vtoyjump/vtoyjump.c @@ -1,7 +1,7 @@ /****************************************************************************** * vtoyjump.c * -* Copyright (c) 2020, longpanda +* Copyright (c) 2021, longpanda * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -31,22 +31,55 @@ static ventoy_os_param g_os_param; static ventoy_windows_data g_windows_data; static UINT8 g_os_param_reserved[32]; -static BOOL g_64bit_system = FALSE; +static INT g_system_bit = VTOY_BIT; static ventoy_guid g_ventoy_guid = VENTOY_GUID; static HANDLE g_vtoylog_mutex = NULL; static HANDLE g_vtoyins_mutex = NULL; -//Unicode "CmdLine" -static BOOL g_PecmdHasCmdLine = FALSE; -static UCHAR g_aucCmdLineHex[] = -{ - 0x43, 0x00, 0x6D, 0x00, 0x64, 0x00, 0x4C, 0x00, 0x69, 0x00, 0x6E, 0x00, 0x65, 0x00 -}; +static CHAR g_prog_full_path[MAX_PATH]; +static CHAR g_prog_dir[MAX_PATH]; +static CHAR g_prog_name[MAX_PATH]; -#define VTOY_PID_FILE "X:\\Windows\\System32\\pidventoy" +#define LOG_FILE "X:\\Windows\\system32\\ventoy.log" #define MUTEX_LOCK(hmutex) if (hmutex != NULL) LockStatus = WaitForSingleObject(hmutex, INFINITE) #define MUTEX_UNLOCK(hmutex) if (hmutex != NULL && WAIT_OBJECT_0 == LockStatus) ReleaseMutex(hmutex) +static const char * GetFileNameInPath(const char *fullpath) +{ + int i; + + if (strstr(fullpath, ":")) + { + for (i = (int)strlen(fullpath); i > 0; i--) + { + if (fullpath[i - 1] == '/' || fullpath[i - 1] == '\\') + { + return fullpath + i; + } + } + } + + return fullpath; +} + +static int split_path_name(char *fullpath, char *dir, char *name) +{ + CHAR ch; + CHAR *Pos = NULL; + + Pos = (CHAR *)GetFileNameInPath(fullpath); + + strcpy_s(name, MAX_PATH, Pos); + + ch = *(Pos - 1); + *(Pos - 1) = 0; + strcpy_s(dir, MAX_PATH, fullpath); + *(Pos - 1) = ch; + + return 0; +} + + void Log(const char *Fmt, ...) { va_list Arg; @@ -70,7 +103,7 @@ void Log(const char *Fmt, ...) MUTEX_LOCK(g_vtoylog_mutex); - fopen_s(&File, "ventoy.log", "a+"); + fopen_s(&File, LOG_FILE, "a+"); if (File) { fwrite(szBuf, 1, Len, File); @@ -233,24 +266,6 @@ static BOOL CheckPeHead(BYTE *Head) return TRUE; } -static BOOL IsPe64(BYTE *buffer) -{ - DWORD pe_off; - - if (!CheckPeHead(buffer)) - { - return FALSE; - } - - pe_off = *(UINT32 *)(buffer + 60); - if (*(UINT16 *)(buffer + pe_off + 24) == 0x020b) - { - return TRUE; - } - - return FALSE; -} - static BOOL CheckOsParam(ventoy_os_param *param) { @@ -528,7 +543,7 @@ int VentoyMountY(HANDLE Handle) for (i = 0; physicalDriveName[i]; i++) { - physicalDriveNameA[i] = toupper((CHAR)(physicalDriveName[i])); + physicalDriveNameA[i] = (CHAR)toupper((CHAR)(physicalDriveName[i])); } Log("physicalDriveNameA=<%s>", physicalDriveNameA); @@ -553,8 +568,10 @@ int VentoyMountY(HANDLE Handle) return bRet ? 0 : 1; } -static BOOL VentoyNeedMountY(const char *IsoPath) +static BOOL VentoyAPINeedMountY(const char *IsoPath) { + (void)IsoPath; + /* TBD */ return FALSE; } @@ -576,7 +593,7 @@ static int VentoyAttachVirtualDisk(HANDLE Handle, const char *IsoPath) DriveYFree = 1; } - if (DriveYFree && VentoyNeedMountY(IsoPath)) + if (DriveYFree && VentoyAPINeedMountY(IsoPath)) { return VentoyMountY(Handle); } @@ -744,7 +761,7 @@ static BOOL Is2K10PE(void) return bRet; } -static CHAR GetMountLogicalDrive(void) +static CHAR GetIMDiskMountLogicalDrive(void) { CHAR Letter = 'Y'; DWORD Drives; @@ -832,7 +849,7 @@ static int VentoyRunImdisk(const char *IsoPath, const char *imdiskexe) Log("VentoyRunImdisk <%s> <%s>", IsoPath, imdiskexe); - Letter = GetMountLogicalDrive(); + Letter = GetIMDiskMountLogicalDrive(); sprintf_s(Cmdline, sizeof(Cmdline), "%s -a -o ro -f \"%s\" -m %C:", imdiskexe, IsoPath, Letter); Log("mount iso to %C: use imdisk cmd <%s>", Letter, Cmdline); @@ -909,7 +926,7 @@ int VentoyMountISOByImdisk(const char *IsoPath, DWORD PhyDrive) if (0 == fl_attach_media(VentoyFatDiskRead, NULL)) { - if (g_64bit_system) + if (g_system_bit == 64) { CopyFileFromFatDisk("/ventoy/imdisk/64/imdisk.sys", "ventoy\\imdisk.sys"); CopyFileFromFatDisk("/ventoy/imdisk/64/imdisk.exe", "ventoy\\imdisk.exe"); @@ -1132,7 +1149,7 @@ static int DecompressInjectionArchive(const char *archive, DWORD PhyDrive) if (0 == fl_attach_media(VentoyFatDiskRead, NULL)) { - if (g_64bit_system) + if (g_system_bit == 64) { CopyFileFromFatDisk("/ventoy/7z/64/7za.exe", "ventoy\\7za.exe"); } @@ -1345,24 +1362,6 @@ static int VentoyHook(ventoy_os_param *param) return 0; } -const char * GetFileNameInPath(const char *fullpath) -{ - int i; - const char *pos = NULL; - - if (strstr(fullpath, ":")) - { - for (i = (int)strlen(fullpath); i > 0; i--) - { - if (fullpath[i - 1] == '/' || fullpath[i - 1] == '\\') - { - return fullpath + i; - } - } - } - - return fullpath; -} int VentoyJumpWimboot(INT argc, CHAR **argv, CHAR *LunchFile) { @@ -1371,13 +1370,7 @@ int VentoyJumpWimboot(INT argc, CHAR **argv, CHAR *LunchFile) DWORD size = 0; DWORD Pos; -#ifdef VTOY_32 - g_64bit_system = FALSE; -#else - g_64bit_system = TRUE; -#endif - - Log("VentoyJumpWimboot %dbit", g_64bit_system ? 64 : 32); + Log("VentoyJumpWimboot %dbit", g_system_bit); sprintf_s(LunchFile, MAX_PATH, "X:\\setup.exe"); @@ -1441,24 +1434,6 @@ static int ventoy_check_create_directory(void) return 0; } -static BOOL VentoyFindCmdLineStr(BYTE *buf, DWORD size) -{ - DWORD i = 0; - UINT32 uiDataChk; - UINT32 uiDataHex = *(UINT32 *)(g_aucCmdLineHex); - - for (i = 0; i < size - sizeof(g_aucCmdLineHex); i += 16) - { - uiDataChk = *(UINT32 *)(buf + i); - if (uiDataChk == uiDataHex && memcmp(buf + i, g_aucCmdLineHex, sizeof(g_aucCmdLineHex)) == 0) - { - return TRUE; - } - } - - return FALSE; -} - int VentoyJump(INT argc, CHAR **argv, CHAR *LunchFile) { int rc = 1; @@ -1484,8 +1459,7 @@ int VentoyJump(INT argc, CHAR **argv, CHAR *LunchFile) goto End; } - g_64bit_system = IsPe64(Buffer); - Log("VentoyJump %dbit", g_64bit_system ? 64 : 32); + Log("VentoyJump %dbit", g_system_bit); MUTEX_LOCK(g_vtoyins_mutex); stat = ventoy_check_create_directory(); @@ -1537,13 +1511,6 @@ int VentoyJump(INT argc, CHAR **argv, CHAR *LunchFile) SaveBuffer2File(LunchFile, Buffer + PeStart, FileSize - PeStart); MUTEX_UNLOCK(g_vtoyins_mutex); - #ifdef VTOY_REJUMP_SUPPORTED - if (_stricmp(LunchFile, "ventoy\\PECMD.EXE") == 0) - { - g_PecmdHasCmdLine = VentoyFindCmdLineStr(Buffer + PeStart, FileSize - PeStart); - } - #endif - break; } } @@ -1574,244 +1541,176 @@ End: } - -static int ventoy_append_process_id(const char *pidfile) +int real_main(int argc, char **argv) { - DWORD PID = 0; - FILE *fp = NULL; + int i = 0; + int rc = 0; + CHAR NewFile[MAX_PATH]; + CHAR LunchFile[MAX_PATH]; + CHAR CallParam[1024] = { 0 }; + STARTUPINFOA Si; + PROCESS_INFORMATION Pi; - PID = GetCurrentProcessId(); - - fopen_s(&fp, pidfile, "a+"); - if (!fp) - { - return 1; - } - - fprintf_s(fp, "%u\n", PID); - - fclose(fp); - return 0; -} - -static int ventoy_get_instance_id(const char *pidfile) -{ - int instance = 0; - FILE *fp = NULL; - char line[256]; - - fopen_s(&fp, pidfile, "r"); - if (!fp) - { - return 1; - } - - while (fgets(line, sizeof(line), fp)) - { - instance++; - } - - fclose(fp); - return instance + 1; -} - -int main(int argc, char **argv) -{ - int i = 0; - int rc = 0; - int id = 0; - BOOL ReJump = FALSE; - CHAR *Pos = NULL; - CHAR CurDir[MAX_PATH]; - CHAR LunchFile[MAX_PATH]; - CHAR CallParam[1024] = { 0 }; - DWORD LockStatus = 0; - STARTUPINFOA Si; - PROCESS_INFORMATION Pi; - -#ifdef VTOY_REJUMP_SUPPORTED - if (argv[0] && strcmp(argv[0], "ventoy\\WinLogon.exe") == 0) - { - GetStartupInfoA(&Si); - Si.dwFlags |= STARTF_USESHOWWINDOW; - Si.wShowWindow = SW_HIDE; - - sprintf_s(LunchFile, sizeof(LunchFile), "PECMD.EXE"); - for (i = 1; i < argc; i++) - { - strcat_s(LunchFile, sizeof(LunchFile), " "); - strcat_s(LunchFile, sizeof(LunchFile), argv[i]); - } - - CreateProcessA(NULL, LunchFile, NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi); - WaitForSingleObject(Pi.hProcess, INFINITE); - return 0; - } -#endif - - g_PecmdHasCmdLine = 0; - g_vtoylog_mutex = CreateMutexA(NULL, FALSE, "VTOYLOG_LOCK"); - g_vtoyins_mutex = CreateMutexA(NULL, FALSE, "VTOYINS_LOCK"); - - MUTEX_LOCK(g_vtoyins_mutex); - if (IsFileExist(VTOY_PID_FILE)) - { - id = ventoy_get_instance_id(VTOY_PID_FILE); - } - else - { - id = 1; - } - ventoy_append_process_id(VTOY_PID_FILE); - MUTEX_UNLOCK(g_vtoyins_mutex); - - if (argv[0] && argv[0][0] && argv[0][1] == ':') - { - GetCurrentDirectoryA(sizeof(CurDir), CurDir); - - strcpy_s(LunchFile, sizeof(LunchFile), argv[0]); - Pos = (char *)GetFileNameInPath(LunchFile); - - strcat_s(CurDir, sizeof(CurDir), "\\"); - strcat_s(CurDir, sizeof(CurDir), Pos); - - if (_stricmp(argv[0], CurDir) != 0) - { - *Pos = 0; - SetCurrentDirectoryA(LunchFile); - } - } - -#ifdef VTOY_32 - Log("######## VentoyJump 32bit [%d] ##########", id); -#else - Log("######## VentoyJump 64bit [%d] ##########", id); -#endif + Log("#### real_main #### argc = %d", argc); + Log("program full path: <%s>", g_prog_full_path); + Log("program dir: <%s>", g_prog_dir); + Log("program name:: <%s>", g_prog_name); Log("argc = %d", argc); - for (i = 0; i < argc; i++) - { - Log("argv[%d]=<%s>", i, argv[i]); - if (i > 0) - { - strcat_s(CallParam, sizeof(CallParam), " "); - strcat_s(CallParam, sizeof(CallParam), argv[i]); - } - } - - if (Pos && *Pos == 0) + for (i = 0; i < argc; i++) { - Log("Old current directory = <%s>", CurDir); - Log("New current directory = <%s>", LunchFile); + Log("argv[%d]=<%s>", i, argv[i]); + if (i > 0) + { + strcat_s(CallParam, sizeof(CallParam), " "); + strcat_s(CallParam, sizeof(CallParam), argv[i]); + } + } + + GetStartupInfoA(&Si); + memset(LunchFile, 0, sizeof(LunchFile)); + + if (strstr(argv[0], "vtoyjump.exe")) + { + rc = VentoyJumpWimboot(argc, argv, LunchFile); } else { - GetCurrentDirectoryA(sizeof(CurDir), CurDir); - Log("Current directory = <%s>", CurDir); + rc = VentoyJump(argc, argv, LunchFile); } - GetStartupInfoA(&Si); + Log("LunchFile=<%s> CallParam=<%s>", LunchFile, CallParam); - memset(LunchFile, 0, sizeof(LunchFile)); + if (_stricmp(g_prog_name, "winpeshl.exe") != 0 && IsFileExist("ventoy\\%s", g_prog_name)) + { + sprintf_s(NewFile, sizeof(NewFile), "%s_BACK.EXE", g_prog_full_path); + MoveFileA(g_prog_full_path, NewFile); + Log("Move <%s> to <%s>", g_prog_full_path, NewFile); - if (strstr(argv[0], "vtoyjump.exe")) - { - rc = VentoyJumpWimboot(argc, argv, LunchFile); - } + sprintf_s(NewFile, sizeof(NewFile), "ventoy\\%s", g_prog_name); + CopyFileA(NewFile, g_prog_full_path, TRUE); + Log("Copy <%s> to <%s>", NewFile, g_prog_full_path); + + sprintf_s(LunchFile, sizeof(LunchFile), "%s", g_prog_full_path); + Log("Final lunchFile is <%s>", LunchFile); + } else { - rc = VentoyJump(argc, argv, LunchFile); + Log("We don't need to recover original <%s>", g_prog_name); } - Log("id=%d LunchFile=<%s> CallParam=<%s>", id, LunchFile, CallParam); + if (g_os_param_reserved[0] == 3) + { + Log("Open log for debug ..."); + sprintf_s(LunchFile, sizeof(LunchFile), "%s", "notepad.exe ventoy.log"); + } + else + { + if (CallParam[0]) + { + strcat_s(LunchFile, sizeof(LunchFile), CallParam); + } + else if (NULL == strstr(LunchFile, "setup.exe")) + { + Log("Not setup.exe, hide windows."); + Si.dwFlags |= STARTF_USESHOWWINDOW; + Si.wShowWindow = SW_HIDE; + } - if (id == 1 && _stricmp(argv[0], "PECMD.EXE") == 0 && _stricmp(LunchFile, "ventoy\\PECMD.EXE") == 0) - { - MUTEX_LOCK(g_vtoyins_mutex); - id = ventoy_get_instance_id(VTOY_PID_FILE); - MUTEX_UNLOCK(g_vtoyins_mutex); + Log("Ventoy jump %s ...", rc == 0 ? "success" : "failed"); + } - Log("Current instance id is: %d", id); + Log("Now launch <%s> ...", LunchFile); - if (id == 2) - { - #ifdef VTOY_REJUMP_SUPPORTED - if (g_PecmdHasCmdLine) - { - ReJump = TRUE; - CopyFileA("PECMD.EXE", "ventoy\\WinLogon.exe", TRUE); - } - #endif + if (g_os_param_reserved[0] == 4) + { + Log("Open cmd for debug ..."); + sprintf_s(LunchFile, sizeof(LunchFile), "%s", "cmd.exe"); + } - MoveFileA("PECMD.EXE", "PECMD_BACK.EXE"); - CopyFileA("ventoy\\PECMD.EXE", "PECMD.EXE", TRUE); - sprintf_s(LunchFile, sizeof(LunchFile), "%s", "PECMD.EXE"); - Log("Move original PECMD.EXE <%s>", LunchFile); - } - else - { - Log("%d instance started, don't move PECMD.EXE", id); - } - } + Log("Backup log at this point"); + CopyFileA(LOG_FILE, "X:\\Windows\\ventoy.backup", TRUE); - if (g_os_param_reserved[0] == 3) - { - Log("Open log for debug ..."); - sprintf_s(LunchFile, sizeof(LunchFile), "%s", "notepad.exe ventoy.log"); - } - else - { - if (CallParam[0]) - { - strcat_s(LunchFile, sizeof(LunchFile), CallParam); - } - else if (NULL == strstr(LunchFile, "setup.exe")) - { - Log("Not setup.exe, hide windows."); - Si.dwFlags |= STARTF_USESHOWWINDOW; - Si.wShowWindow = SW_HIDE; - } + CreateProcessA(NULL, LunchFile, NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi); - Log("Ventoy jump %s ...", rc == 0 ? "success" : "failed"); - } - - Log("Now launch <%s> ...", LunchFile); + for (i = 0; rc && i < 1800; i++) + { + Log("Ventoy hook failed, now wait and retry ..."); + Sleep(1000); + rc = VentoyHook(&g_os_param); + } - if (g_os_param_reserved[0] == 4) - { - Log("Open cmd for debug ..."); - sprintf_s(LunchFile, sizeof(LunchFile), "%s", "cmd.exe"); - } + Log("Wait process..."); + WaitForSingleObject(Pi.hProcess, INFINITE); -#ifdef VTOY_REJUMP_SUPPORTED - if (ReJump) - { - sprintf_s(CallParam, sizeof(CallParam), "ventoy\\WinLogon.exe%s", LunchFile + strlen("PECMD.EXE")); - Log("Now rejump to pecmd.exe <%s> ...", CallParam); - - CreateProcessA(NULL, CallParam, NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi); - - Log("Wait rejump process..."); - WaitForSingleObject(Pi.hProcess, INFINITE); - Log("rejump finished"); - return 0; - } -#else - (void)ReJump; -#endif - - CreateProcessA(NULL, LunchFile, NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi); - - for (i = 0; rc && i < 1800; i++) - { - Log("Ventoy hook failed, now wait and retry ..."); - Sleep(1000); - rc = VentoyHook(&g_os_param); - } - - Log("Wait process..."); - WaitForSingleObject(Pi.hProcess, INFINITE); - - Log("vtoyjump finished"); + Log("vtoyjump finished"); return 0; } + + +int main(int argc, char **argv) +{ + int i; + STARTUPINFOA Si; + PROCESS_INFORMATION Pi; + CHAR CurDir[MAX_PATH]; + CHAR NewArgv0[MAX_PATH]; + CHAR CallParam[1024] = { 0 }; + + g_vtoylog_mutex = CreateMutexA(NULL, FALSE, "VTOYLOG_LOCK"); + g_vtoyins_mutex = CreateMutexA(NULL, FALSE, "VTOYINS_LOCK"); + + Log("######## VentoyJump %dbit ##########", g_system_bit); + + GetCurrentDirectoryA(sizeof(CurDir), CurDir); + Log("Current directory is <%s>", CurDir); + + GetModuleFileNameA(NULL, g_prog_full_path, MAX_PATH); + split_path_name(g_prog_full_path, g_prog_dir, g_prog_name); + + Log("EXE path: <%s> dir:<%s> name:<%s>", g_prog_full_path, g_prog_dir, g_prog_name); + + if (_stricmp(g_prog_name, "WinLogon.exe") == 0) + { + Log("This time is rejump back ..."); + + strcpy_s(g_prog_full_path, sizeof(g_prog_full_path), argv[1]); + split_path_name(g_prog_full_path, g_prog_dir, g_prog_name); + + return real_main(argc - 1, argv + 1); + } + else if (_stricmp(g_prog_name, "PECMD.exe") == 0) + { + Log("We need to rejump for pecmd ..."); + + ventoy_check_create_directory(); + CopyFileA(g_prog_full_path, "ventoy\\WinLogon.exe", TRUE); + + sprintf_s(CallParam, sizeof(CallParam), "ventoy\\WinLogon.exe %s", g_prog_full_path); + for (i = 1; i < argc; i++) + { + strcat_s(CallParam, sizeof(CallParam), " "); + strcat_s(CallParam, sizeof(CallParam), argv[i]); + } + + Log("Now rejump to <%s> ...", CallParam); + GetStartupInfoA(&Si); + CreateProcessA(NULL, CallParam, NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi); + + Log("Wait rejump process..."); + WaitForSingleObject(Pi.hProcess, INFINITE); + Log("rejump finished"); + return 0; + } + else + { + Log("We don't need to rejump ..."); + + strcpy_s(NewArgv0, sizeof(NewArgv0), g_prog_full_path); + argv[0] = NewArgv0; + + return real_main(argc, argv); + } +} + + diff --git a/vtoyjump/vtoyjump/vtoyjump.vcxproj b/vtoyjump/vtoyjump/vtoyjump.vcxproj index eeef6d98..9659c449 100644 --- a/vtoyjump/vtoyjump/vtoyjump.vcxproj +++ b/vtoyjump/vtoyjump/vtoyjump.vcxproj @@ -126,7 +126,7 @@ MaxSpeed true true - VTOY_32;FATFS_INC_FORMAT_SUPPORT=0;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + VTOY_BIT=32;FATFS_INC_FORMAT_SUPPORT=0;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true MultiThreaded @@ -146,7 +146,7 @@ MaxSpeed true true - VTOY_64;FATFS_INC_FORMAT_SUPPORT=0;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + VTOY_BIT=64;FATFS_INC_FORMAT_SUPPORT=0;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) true MultiThreaded