From 3641f2acb33822fcaa0c1eea03de3d5f352e28eb Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Fri, 26 Nov 2021 17:23:38 -0500 Subject: [PATCH] Update to v1.5 Doesn't actually change anything, just fixes some warnings. and adds more to the resource file --- .gitignore | 1 + .../MinecraftEducationEdition.c | 304 +++++++++++++----- .../MinecraftEducationEdition.vcxproj | 8 +- MinecraftEducationEdition/Resource.aps | Bin 48128 -> 131396 bytes MinecraftEducationEdition/Resource.rc | 49 +++ 5 files changed, 272 insertions(+), 90 deletions(-) diff --git a/.gitignore b/.gitignore index c6127b3..53f8253 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ modules.order Module.symvers Mkfile.old dkms.conf +.vs/* diff --git a/MinecraftEducationEdition/MinecraftEducationEdition.c b/MinecraftEducationEdition/MinecraftEducationEdition.c index 2f61042..8bbb10c 100644 --- a/MinecraftEducationEdition/MinecraftEducationEdition.c +++ b/MinecraftEducationEdition/MinecraftEducationEdition.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -10,16 +11,24 @@ int* pointer_path; int num_ptr; -uintptr_t GetProcessBaseAddress(HANDLE process) // from stackoverflow +/* +* Gets the base address of the main module for any process id +* I totally didnt steal this from StackOverflow. +*/ +uintptr_t GetProcessBaseAddress(DWORD processId) { - DWORD_PTR baseAddress = 0; - HANDLE processHandle = OpenProcess(PROCESS_ALL_ACCESS,TRUE,process); + /* + * Open the process + */ + uintptr_t baseAddress = 0; + HANDLE processHandle = OpenProcess(PROCESS_ALL_ACCESS, TRUE, processId); HMODULE* moduleArray; LPBYTE moduleArrayBytes; DWORD bytesRequired; if (processHandle) { + // Enumarate through all process modules if (EnumProcessModules(processHandle, NULL, 0, &bytesRequired)) { if (bytesRequired) @@ -31,12 +40,13 @@ uintptr_t GetProcessBaseAddress(HANDLE process) // from stackoverflow int moduleCount; moduleCount = bytesRequired / sizeof(HMODULE); - moduleArray = (uintptr_t*)moduleArrayBytes; + moduleArray = (HMODULE*)moduleArrayBytes; + // Get the first module in the process (main exe) if (EnumProcessModules(processHandle, moduleArray, bytesRequired, &bytesRequired)) { - baseAddress = moduleArray[0]; + baseAddress = (uintptr_t)(moduleArray[0]); } LocalFree(moduleArrayBytes); @@ -50,17 +60,27 @@ uintptr_t GetProcessBaseAddress(HANDLE process) // from stackoverflow return baseAddress; } +/* +* Obtains a process id from +* a given executable name +* (eg, Minecraft.Windows.exe) +* Returns NULL if not found. +*/ DWORD GetProcId(WCHAR* name) { PROCESSENTRY32 entry; entry.dwSize = sizeof(PROCESSENTRY32); - HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); + // Save a snapshot of all open processes + HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + // Get the first process if (Process32First(snapshot, &entry) == TRUE) { + // Enumerate through all processes while (Process32Next(snapshot, &entry) == TRUE) { + // Check if the file name matches if (wcscmp(entry.szExeFile, name) == 0) { return entry.th32ProcessID; @@ -68,10 +88,14 @@ DWORD GetProcId(WCHAR* name) } } + // Remove the snapshot. CloseHandle(snapshot); - return NULL; + return 0; } +/* +* Entry Point - Runs when the program starts +*/ int main(int argc, char* argv[]) { FILE* ptr_file; @@ -79,15 +103,22 @@ int main(int argc, char* argv[]) int LOGIN_STEP_VALUE = -1; char* tmp; - #ifdef _WIN64 - printf_s("!!! x64 Version can ONLY be used for the 64 Bit Versions of the game!\n"); + printf_s("!!! x64 Version can ONLY be used for the 64 Bit Versions of the game!\n"); #else - printf_s("!!! x86 Version can ONLY be used for the 32 Bit Versions of the game!\n"); + printf_s("!!! x86 Version can ONLY be used for the 32 Bit Versions of the game!\n"); #endif + /* + * Check for command line arguments: + * + * --help - Shows list of commands + * --ptr - Sets the filename to read pointer paths from + * --lstep - What to set the login step value to. + */ + strncpy_s(MEE_POINTER_FILE, 0x2048, "mee.ptr", 0x2048); - if(argc > 1) + if(argc > 1) { for (int i = 0; i < argc; i++) { @@ -110,133 +141,240 @@ int main(int argc, char* argv[]) printf_s("MEE.PTR FILE : %s\nLOGIN STEP VALUE: %i\n", MEE_POINTER_FILE, LOGIN_STEP_VALUE); } - // Read text file + /* + * Parse Pointer Path File (mee.ptr) + * ASCII Hex Numbers, seperated by " > " + * And converts it to a array of intergers. + */ printf_s("Loading %s\n", MEE_POINTER_FILE); - if ((access(MEE_POINTER_FILE, 0)) != -1) + if ((_access(MEE_POINTER_FILE, 0)) != -1) // If the mee.ptr file exists AND the process has permission to read it.. { + // Open the pointer file fopen_s(&ptr_file, MEE_POINTER_FILE, "r"); + + /* + * This next part just gets the size + * of mee.ptr file + */ + + // Seek to the end of the file fseek(ptr_file, 0, SEEK_END); + // Get the current position int sz = ftell(ptr_file)+1; + // Seek to the start of the file fseek(ptr_file, 0, SEEK_SET); + /* + * Allocate a buffer the size of mee.ptr + * then read the contents of the mee.ptr file + * into that buffer + */ + + // Allocate (sz) bytes of memory for the buffer. char* file_contents = (char*)malloc(sz); + // Set the newly allocated buffer to all 0x00 memset(file_contents, 0x00, sz); + // Read the contents of mee.ptr into the buffer. fread(file_contents, sz, 1, ptr_file); + /* + * Create a copy of the pointer path file buffer + * This is so we can scan through and mess with the pointers to it + * Without messing up the our original copy + */ + + // Allocate (sz) bytes of memory for the buffer char* work_buf = (char*)malloc(sz); + // Copy contents of previously read file into the new buffer memcpy_s(work_buf, sz, file_contents, sz); - num_ptr = 0; - char* next_token1 = NULL; + /* + * Count the total number of elements + * From mee.ptr file. + */ + + // Set the total number of elements in the pointer path to 0 + num_ptr = 0; + + // Pointer to the next element, NULL for now. + char* next_token1 = NULL; + + // Get a pointer to the first occurance of " > " char* token = strtok_s(work_buf, " > ", &next_token1); - // Count number of ptrs - while (token != NULL) { + // Repeat this until there is no more " > " left + while (token != NULL) { + // Get the pointer to the next " > ". token = strtok_s(NULL, " > ",&next_token1); - num_ptr += 1; + // Add 1 to the total number of elements + num_ptr ++; } - pointer_path = (int*)malloc(num_ptr * sizeof(int)); + // Free up memory used for counting the list of elements + free(work_buf); + /* + * Create a new 2nd copy of the pointer path file buffer + */ + + // Allocate buffer the size of the mee.ptr file work_buf = (char*)malloc(sz); + // Copy contents of mee.ptr file into new buffer memcpy_s(work_buf, sz, file_contents, sz); - char* next_token2 = NULL; + /* + * Allocate the memory required for the interger array + * Then convert each ASCII Hex Code to an int + * And store it in the pointer paths array. + */ + // Allocate memory buffer the size of the required int array + pointer_path = (int*)malloc(num_ptr * sizeof(int)); + + // Pointer to the next element, NULL for now. + char* next_token2 = NULL; + // Get the pointer to the first element (seperated by " > ") char* ptrs = strtok_s(work_buf, " > ",&next_token2); + // Convert the ascii string to a int value, and put it into the int array pointer_path[0] = (int)strtol(ptrs, &tmp, 16); - // Use ptr - + // Repeat until read all pointers for(int i = 1; i < num_ptr; i++){ + // Read the next element (seperated by " > ") ptrs = strtok_s(NULL, " > ", &next_token2); + // Convert the ascii string to a int value, and put it into the int array pointer_path[i] = (int)strtol(ptrs, &tmp, 16); } + // Finally close the mee.ptr file fclose(ptr_file); + // Free up memory used for reading the list of elements + free(work_buf); + // Free up memory used for the file contents + free(file_contents); + printf_s("Loaded %s!\n", MEE_POINTER_FILE); } - else + else // If no mee.ptr file is found ... OR the process dont have permission to read it { - printf_s("Failed, using default pointer path (MCEE 1.14.70 UWP x64)\n"); - num_ptr = 4; + // Set number of elements to a default number + num_ptr = 8; + // Allocate enough space for an int array of that size pointer_path = (int*)malloc(num_ptr * sizeof(int)); - - pointer_path[0] = 0x2D98F08; - pointer_path[1] = 0x0; - pointer_path[2] = 0x560; - pointer_path[3] = 0x0; + #ifdef _WIN64 // This code is only included if the project is built as win64 version + printf_s("Failed, using default pointer path (MCEE 1.17.30 UWP x64)\n"); + // Use a default pointer path. + pointer_path[0] = 0x3607D48; + pointer_path[1] = 0x0; + pointer_path[2] = 0x50; + pointer_path[3] = 0xA8; + pointer_path[4] = 0xE8; + pointer_path[5] = 0x0; + pointer_path[6] = 0x630; + pointer_path[7] = 0x10; + #else // if its NOT the win64 version.. + printf_s("Failed, using default pointer path (MCEE 1.17.30 Win32 x86)\n"); + // Use a default pointer path. + pointer_path[0] = 0x2CBF0FC; + pointer_path[1] = 0x0; + pointer_path[2] = 0x7C; + pointer_path[3] = 0x0; + pointer_path[4] = 0x68; + pointer_path[5] = 0xC; + pointer_path[6] = 0x2E4; + pointer_path[7] = 0x8; + #endif } - printf_s("\nPointer Path: "); - for (int i = 0; i < num_ptr; i++) + /* + * Print the currently in use + * pointer path to the output of the terminal + */ + + // Print "Pointer Path: " + printf_s("\nPointer Path: "); + for (int i = 0; i < num_ptr; i++) // Repeat for all elements in the path { - printf_s("%x", pointer_path[i]); - if (i != num_ptr - 1) + // Print the hex encoding of the current element + printf_s("%x", pointer_path[i]); + if (i != num_ptr - 1) // if its not the last element { - printf_s(" > "); + // Print " > " + printf_s(" > "); } } - printf_s("\n"); + // Print a newline + printf_s("\n"); - // Hack the universe. - DWORD proc_id = NULL; - - printf_s("\nPlease open Minecraft Education Edition\n"); - while (proc_id == NULL) - { - proc_id = GetProcId(L"Minecraft.Windows.exe"); - if (proc_id == NULL) - proc_id = GetProcId(L"Minecraft.Win10.DX11.exe"); - } - - printf_s("MCEE Process ID: %x\n", proc_id); - HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, proc_id); - printf_s("MCEE Process Handle: %x\n", hProcess); + /* + * This part is the part that actually patches + * Education edition's memory space + */ - if (!hProcess) + // Process ID of minecraft educattion ediion application, (currently 0) + DWORD proc_id = 0; + printf_s("\nPlease open Minecraft Education Edition\n"); + + /* + * Repeatidly check if "Minecraft.Windows.exe" or "Minecraft.Win10.DX11.exe" is open + */ + while (proc_id == 0) { + proc_id = GetProcId(L"Minecraft.Windows.exe"); // Try to get the process ID for "Minecraft.Windows" + if (proc_id == 0) // If the process ID is NULL (process not found) + proc_id = GetProcId(L"Minecraft.Win10.DX11.exe"); // Try to get the process ID for "Minecrat.Win10.DX11.exe" + } + // Print the process ID + printf_s("MCEE Process ID: %x\n", proc_id); + // Try to open the process. + HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, proc_id); + // Print the process handle + printf_s("MCEE Process Handle: 0x%p\n", hProcess); + + if (!hProcess) // If failed to open the process (eg no permission) + { + // Display a message box saying to try with admin rights MessageBox(NULL, L"Cannot open process!\r\nTry \"Run as administrator\"", L"Error!", MB_OK + MB_ICONERROR); } else { + // Base Address of the minecraft education edition process (NULL for now) + uintptr_t baseAddress = 0; + while(baseAddress == 0) // Repeat until the base address is not NULL. + // Try to get the base address of the Minecraft Education Edition Process + baseAddress = GetProcessBaseAddress(proc_id); - uintptr_t baseAddress = NULL; - while(baseAddress == NULL) - baseAddress = (uintptr_t)GetProcessBaseAddress(proc_id); -#ifdef _WIN64 - printf_s("MCEE Base Addr: %llx\n", baseAddress); -#else - printf_s("MCEE Base Addr: %x\n", baseAddress); -#endif - - + printf_s("MCEE Base Addr: 0x%p\n", (void*)baseAddress); printf_s("Waiting for game to initalize....\n"); read_ptr_path: - baseAddress = (uintptr_t)GetProcessBaseAddress(proc_id); // recalculate base address idk why but this seems to be required. + // recalculate base address idk why but this seems to be required. + baseAddress = GetProcessBaseAddress(proc_id); - // Read first ptr + // Read first element uintptr_t first_ptr = pointer_path[0]; uintptr_t cur_ptr = baseAddress + first_ptr; uintptr_t ptr = 0; uintptr_t new_ptr = 0; - - - ReadProcessMemory(hProcess, cur_ptr, &ptr, sizeof(uintptr_t), 0); + // Read first element from the games memory + ReadProcessMemory(hProcess, (LPCVOID)cur_ptr, &ptr, sizeof(uintptr_t), 0); if (ptr == 0) goto read_ptr_path; - for (int i = 1; i < num_ptr-1; i++) // Follow path... + /* + * Follow all elements + * in the path, until you reach + * the pointer to the login step value. + */ + for (int i = 1; i < num_ptr-1; i++) { - cur_ptr = ptr + pointer_path[i]; - ReadProcessMemory(hProcess, cur_ptr, &new_ptr, sizeof(uintptr_t), 0); + ReadProcessMemory(hProcess, (LPCVOID)cur_ptr, &new_ptr, sizeof(uintptr_t), 0); if (new_ptr == 0) { i -= 1; goto read_ptr_path; @@ -246,53 +384,47 @@ int main(int argc, char* argv[]) ptr = new_ptr; } - - } - ptr += pointer_path[num_ptr-1]; // final addition + // final addition + ptr += pointer_path[num_ptr-1]; - // Wait for 0x1 + // Wait for Welcome Screen. int login_step_value = 0; - ReadProcessMemory(hProcess, (void*)ptr, &login_step_value, sizeof(int), 0); + ReadProcessMemory(hProcess, (LPCVOID)ptr, &login_step_value, sizeof(int), 0); if (login_step_value != 0x0) { -#ifdef _WIN64 - printf_s("Final Ptr: 0x%llx\n", ptr); -#else - printf_s("Final Ptr: 0x%x\n", ptr); -#endif - printf_s("Current Login Step: %i\n", ptr, login_step_value); + printf_s("Final Ptr: 0x%p\n", (void*)ptr); + + printf_s("Current Login Step: %i\n", login_step_value); if (LOGIN_STEP_VALUE != -1) { printf_s("Trying login stage %i", LOGIN_STEP_VALUE); - WriteProcessMemory(hProcess, (void*)ptr, &LOGIN_STEP_VALUE, sizeof(int), 0); + WriteProcessMemory(hProcess, (LPVOID)ptr, &LOGIN_STEP_VALUE, sizeof(int), 0); goto finish; } printf_s("Trying login stage 5...\n"); // Backwards Comp (0.xx) int login_step_value = 5; - WriteProcessMemory(hProcess, (void*)ptr, &login_step_value, sizeof(int), 0); + WriteProcessMemory(hProcess, (LPVOID)ptr, &login_step_value, sizeof(int), 0); Sleep(1 * 200); printf_s("Trying login stage 6...\n"); // Backwards Comp (1.9 and lower) login_step_value = 6; - WriteProcessMemory(hProcess, (void*)ptr, &login_step_value, sizeof(int), 0); + WriteProcessMemory(hProcess, (LPVOID)ptr, &login_step_value, sizeof(int), 0); Sleep(1 * 200); printf_s("Trying login stage 8...\n"); login_step_value = 8; - WriteProcessMemory(hProcess, (void*)ptr, &login_step_value, sizeof(int), 0); + WriteProcessMemory(hProcess, (LPVOID)ptr, &login_step_value, sizeof(int), 0); } else - { goto read_ptr_path; - } finish: diff --git a/MinecraftEducationEdition/MinecraftEducationEdition.vcxproj b/MinecraftEducationEdition/MinecraftEducationEdition.vcxproj index b1abc51..32ff4b5 100644 --- a/MinecraftEducationEdition/MinecraftEducationEdition.vcxproj +++ b/MinecraftEducationEdition/MinecraftEducationEdition.vcxproj @@ -30,26 +30,26 @@ Application true - v142 + v143 Unicode Application false - v142 + v143 true Unicode Application true - v142 + v143 Unicode Application false - v142 + v143 true Unicode diff --git a/MinecraftEducationEdition/Resource.aps b/MinecraftEducationEdition/Resource.aps index ce9d59360d322bb81066d53147436f3e5265a78c..648f430e5433d787ceb3eba5b234b1189edd3000 100644 GIT binary patch literal 131396 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%0D)|SM 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 literal 48128 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 DeMqNt diff --git a/MinecraftEducationEdition/Resource.rc b/MinecraftEducationEdition/Resource.rc index 23d8af6..16fdf17 100644 --- a/MinecraftEducationEdition/Resource.rc +++ b/MinecraftEducationEdition/Resource.rc @@ -12,6 +12,55 @@ ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,5,0,0 + PRODUCTVERSION 1,5,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "140904b0" + BEGIN + VALUE "CompanyName", "SilicaAndPina" + VALUE "FileDescription", "Skip the login screen in Minecraft Education Edition." + VALUE "FileVersion", "1.5.0.0" + VALUE "InternalName", "MEELoginSkip.exe" + VALUE "LegalCopyright", "MIT Licensed (2021)" + VALUE "OriginalFilename", "MEELoginSkip.exe" + VALUE "ProductName", "Minecarft Education Edtion Login Skip" + VALUE "ProductVersion", "1.5.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x1409, 1200 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// // English (United Kingdom) resources