From 6ca588dd30023de3dceb4cf54f02e2048ff413bf Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Fri, 20 Nov 2020 17:42:50 +1300 Subject: [PATCH 1/6] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 48adb4f..cf41278 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # MCEELoginSkip Skip Login Screen on Minecraft Education Edition + +https://gist.github.com/KuromeSan/73d76f784bdecedf4c571332572ebc63 From d703549aa418c2c933eb9e23dca941b4c79f0b7f Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Sat, 18 Sep 2021 12:45:36 +1200 Subject: [PATCH 2/6] Add files via upload --- .../MinecraftEducationEdition.c | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/MinecraftEducationEdition/MinecraftEducationEdition.c b/MinecraftEducationEdition/MinecraftEducationEdition.c index 45efdbd..bbca32d 100644 --- a/MinecraftEducationEdition/MinecraftEducationEdition.c +++ b/MinecraftEducationEdition/MinecraftEducationEdition.c @@ -159,18 +159,14 @@ int main(int argc, char* argv[]) } else { - printf_s("Failed, using default pointer path (MCEE 1.12.60 UWP x64)\n"); - num_ptr = 8; + printf_s("Failed, using default pointer path (MCEE 1.14.70 UWP x64)\n"); + num_ptr = 4; pointer_path = (int*)malloc(num_ptr * sizeof(int)); - pointer_path[0] = 0x2CFFF40; - pointer_path[1] = 0x30; - pointer_path[2] = 0x8; - pointer_path[3] = 0x20; - pointer_path[4] = 0x570; - pointer_path[5] = 0x18; - pointer_path[6] = 0xA8; - pointer_path[7] = 0x0; + pointer_path[0] = 0x2D98F08; + pointer_path[1] = 0x0; + pointer_path[2] = 0x560; + pointer_path[3] = 0x0; } printf_s("\nPointer Path: "); @@ -209,8 +205,11 @@ int main(int argc, char* argv[]) 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("Waiting for game to initalize....\n"); @@ -236,7 +235,6 @@ int main(int argc, char* argv[]) for (int i = 1; i < num_ptr-1; i++) // Follow path... { - cur_ptr = ptr + pointer_path[i]; ReadProcessMemory(hProcess, cur_ptr, &new_ptr, sizeof(uintptr_t), 0); if (new_ptr == 0) { @@ -252,12 +250,20 @@ int main(int argc, char* argv[]) } + ptr += pointer_path[num_ptr-1]; // final addition +#ifdef _WIN64 + printf_s("Final Ptr: 0x%llx\n", ptr); +#else + printf_s("Final Ptr: 0x%x\n", ptr); +#endif + // Wait for 0x1 int login_step_value = 0; ReadProcessMemory(hProcess, (void*)ptr, &login_step_value, sizeof(int), 0); if (login_step_value != 0x0) { + printf_s("Current Login Step: %i\n", ptr, login_step_value); if (LOGIN_STEP_VALUE != -1) { printf_s("Trying login stage %i", LOGIN_STEP_VALUE); From da82c1ac77ff3982faed947584c7663a5c763e3a Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Sat, 18 Sep 2021 12:56:19 +1200 Subject: [PATCH 3/6] update --- .../MinecraftEducationEdition.c | 11 +-- .../MinecraftEducationEdition.vcxproj | 2 +- MinecraftEducationEdition/mee.ptr | 1 - ... => MinecraftEducationEditionLoginSkip.sln | 72 +++++++++---------- 4 files changed, 43 insertions(+), 43 deletions(-) delete mode 100644 MinecraftEducationEdition/mee.ptr rename MinecraftEducationEdition.sln => MinecraftEducationEditionLoginSkip.sln (98%) diff --git a/MinecraftEducationEdition/MinecraftEducationEdition.c b/MinecraftEducationEdition/MinecraftEducationEdition.c index bbca32d..2f61042 100644 --- a/MinecraftEducationEdition/MinecraftEducationEdition.c +++ b/MinecraftEducationEdition/MinecraftEducationEdition.c @@ -251,11 +251,6 @@ int main(int argc, char* argv[]) } ptr += pointer_path[num_ptr-1]; // final addition -#ifdef _WIN64 - printf_s("Final Ptr: 0x%llx\n", ptr); -#else - printf_s("Final Ptr: 0x%x\n", ptr); -#endif // Wait for 0x1 int login_step_value = 0; @@ -263,6 +258,12 @@ int main(int argc, char* argv[]) 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); if (LOGIN_STEP_VALUE != -1) { diff --git a/MinecraftEducationEdition/MinecraftEducationEdition.vcxproj b/MinecraftEducationEdition/MinecraftEducationEdition.vcxproj index 2a23fa3..b1abc51 100644 --- a/MinecraftEducationEdition/MinecraftEducationEdition.vcxproj +++ b/MinecraftEducationEdition/MinecraftEducationEdition.vcxproj @@ -24,7 +24,7 @@ <ProjectGuid>{917b2aeb-964d-4499-8108-4e356c91d5e9}</ProjectGuid> <RootNamespace>MinecraftEducationEdition</RootNamespace> <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> - <ProjectName>MinecraftEducationEdition</ProjectName> + <ProjectName>MinecraftEducationEditionLoginSkip</ProjectName> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> diff --git a/MinecraftEducationEdition/mee.ptr b/MinecraftEducationEdition/mee.ptr deleted file mode 100644 index 6b62dda..0000000 --- a/MinecraftEducationEdition/mee.ptr +++ /dev/null @@ -1 +0,0 @@ -2594A58 > 60 > 138 > 58 > 480 > 10 > A8 > 0 \ No newline at end of file diff --git a/MinecraftEducationEdition.sln b/MinecraftEducationEditionLoginSkip.sln similarity index 98% rename from MinecraftEducationEdition.sln rename to MinecraftEducationEditionLoginSkip.sln index 2d0b4f1..ae6404f 100644 --- a/MinecraftEducationEdition.sln +++ b/MinecraftEducationEditionLoginSkip.sln @@ -1,36 +1,36 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30114.105 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MinecraftEducationEdition", "MinecraftEducationEdition\MinecraftEducationEdition.vcxproj", "{917B2AEB-964D-4499-8108-4E356C91D5E9}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|x64.ActiveCfg = Debug|x64 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|x64.Build.0 = Debug|x64 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|x86.ActiveCfg = Debug|Win32 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|x86.Build.0 = Debug|Win32 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|Any CPU.ActiveCfg = Release|Win32 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|Any CPU.Build.0 = Release|Win32 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|x64.ActiveCfg = Release|x64 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|x64.Build.0 = Release|x64 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|x86.ActiveCfg = Release|Win32 - {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CBDDD1CF-AD3F-4107-B580-BFACEB76CBFF} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30114.105 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MinecraftEducationEdition", "MinecraftEducationEdition\MinecraftEducationEdition.vcxproj", "{917B2AEB-964D-4499-8108-4E356C91D5E9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|x64.ActiveCfg = Debug|x64 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|x64.Build.0 = Debug|x64 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|x86.ActiveCfg = Debug|Win32 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Debug|x86.Build.0 = Debug|Win32 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|Any CPU.ActiveCfg = Release|Win32 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|Any CPU.Build.0 = Release|Win32 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|x64.ActiveCfg = Release|x64 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|x64.Build.0 = Release|x64 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|x86.ActiveCfg = Release|Win32 + {917B2AEB-964D-4499-8108-4E356C91D5E9}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CBDDD1CF-AD3F-4107-B580-BFACEB76CBFF} + EndGlobalSection +EndGlobal 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 4/6] 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 <stdio.h> #include <stdlib.h> #include <windows.h> +#include <io.h> #include <psapi.h> #include <wchar.h> #include <string.h> @@ -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 @@ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v142</PlatformToolset> + <PlatformToolset>v143</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> - <PlatformToolset>v142</PlatformToolset> + <PlatformToolset>v143</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v142</PlatformToolset> + <PlatformToolset>v143</PlatformToolset> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> - <PlatformToolset>v142</PlatformToolset> + <PlatformToolset>v143</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> 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 From 619efde6215b4fad180d910f2ad657319f924631 Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Fri, 26 Nov 2021 17:35:53 -0500 Subject: [PATCH 5/6] Update README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cf41278..1b5dc69 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,11 @@ # MCEELoginSkip Skip Login Screen on Minecraft Education Edition -https://gist.github.com/KuromeSan/73d76f784bdecedf4c571332572ebc63 +you may need to open mee.ptr in notepad, and copy paste whatever ptr path for the version +you are using, for a somewhat-complete list, see here: https://gist.github.com/KuromeSan/73d76f784bdecedf4c571332572ebc63 + +arguments: + +--help - show help screen +--lstep - set login step to a specific value +--ptr - use custom filename as mee.ptr. From 05009b23081b69f7fc27125b0800793f8d63c20a Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Fri, 26 Nov 2021 17:36:43 -0500 Subject: [PATCH 6/6] Update README.md --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1b5dc69..10d6772 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # MCEELoginSkip -Skip Login Screen on Minecraft Education Edition - -you may need to open mee.ptr in notepad, and copy paste whatever ptr path for the version -you are using, for a somewhat-complete list, see here: https://gist.github.com/KuromeSan/73d76f784bdecedf4c571332572ebc63 - -arguments: - ---help - show help screen ---lstep - set login step to a specific value ---ptr - use custom filename as mee.ptr. +Skip Login Screen on Minecraft Education Edition + +you may need to open mee.ptr in notepad, and copy paste whatever ptr path for the version you are using, +for a somewhat-complete list, see here: https://gist.github.com/KuromeSan/73d76f784bdecedf4c571332572ebc63 + +arguments: + +--help - show help screen +--lstep - set login step to a specific value +--ptr - use custom file as mee.ptr.