Skip to content

Commit aac64b2

Browse files
Add files via upload
1 parent 6d65918 commit aac64b2

66 files changed

Lines changed: 2682 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
# Created by SleepyFish on 19-3-2025 for the SimpleInjectionClientBase project
2+
3+
cmake_minimum_required(VERSION 3.28)
4+
project(SimpleClientBase)
5+
6+
find_package(JNI REQUIRED)
7+
find_package(OpenGL REQUIRED)
8+
9+
set(CMAKE_CXX_STANDARD 20)
10+
11+
add_library(SimpleClientBase SHARED
12+
13+
# asset files (read /assets/README.txt)
14+
assets/fonts/sfuibold.h
15+
assets/fonts/sfuiregular.h
16+
17+
# imgui classes
18+
libraries/imgui/imconfig.h
19+
libraries/imgui/imgui.cpp
20+
libraries/imgui/imgui.h
21+
libraries/imgui/imgui_draw.cpp
22+
libraries/imgui/imgui_impl_opengl2.cpp
23+
libraries/imgui/imgui_impl_opengl2.h
24+
libraries/imgui/imgui_impl_win32.cpp
25+
libraries/imgui/imgui_impl_win32.h
26+
libraries/imgui/imgui_internal.h
27+
libraries/imgui/imgui_tables.cpp
28+
libraries/imgui/imgui_widgets.cpp
29+
libraries/imgui/imstb_rectpack.h
30+
libraries/imgui/imstb_textedit.h
31+
libraries/imgui/imstb_truetype.h
32+
33+
# jni classes
34+
libraries/jni/jawt.h
35+
libraries/jni/jawt_md.h
36+
libraries/jni/jdwpTransport.h
37+
libraries/jni/jni.h
38+
libraries/jni/jni_md.h
39+
libraries/jni/jvmti.h
40+
libraries/jni/jvmticmlr.h
41+
libraries/jni/classfile_constants.h
42+
43+
# minhook classes
44+
libraries/minhook/hde/hde32.cpp
45+
libraries/minhook/hde/hde32.h
46+
libraries/minhook/hde/hde64.cpp
47+
libraries/minhook/hde/hde64.h
48+
libraries/minhook/hde/pstdint.h
49+
libraries/minhook/hde/table32.h
50+
libraries/minhook/hde/table64.h
51+
libraries/minhook/buffer.cpp
52+
libraries/minhook/buffer.h
53+
libraries/minhook/hook.cpp
54+
libraries/minhook/minhook.h
55+
libraries/minhook/trampoline.cpp
56+
libraries/minhook/trampoline.h
57+
58+
# main dll classes
59+
dllMain.cpp
60+
source/me/sleepyfish/Client.h
61+
source/me/sleepyfish/ClientMain.h
62+
63+
# module manager classes
64+
source/me/sleepyfish/simpleClientBase/module/Module.h
65+
source/me/sleepyfish/simpleClientBase/module/Manager.h
66+
source/me/sleepyfish/simpleClientBase/module/setting/Setting.h
67+
source/me/sleepyfish/simpleClientBase/module/setting/impl/BoolSetting.h
68+
source/me/sleepyfish/simpleClientBase/module/setting/impl/ValueSetting.h
69+
source/me/sleepyfish/simpleClientBase/module/setting/impl/ColorSetting.h
70+
source/me/sleepyfish/simpleClientBase/module/impl/Auto_Clicker.h
71+
source/me/sleepyfish/simpleClientBase/module/impl/Auto_Clicker.cpp
72+
source/me/sleepyfish/simpleClientBase/module/impl/Text_Gui.h
73+
source/me/sleepyfish/simpleClientBase/module/impl/Text_Gui.cpp
74+
source/me/sleepyfish/simpleClientBase/module/impl/Player_Esp.h
75+
source/me/sleepyfish/simpleClientBase/module/impl/Player_Esp.cpp
76+
source/me/sleepyfish/simpleClientBase/module/impl/Module_Client.h
77+
source/me/sleepyfish/simpleClientBase/module/impl/Module_Client.cpp
78+
79+
# java classes
80+
source/me/sleepyfish/simpleClientBase/utils/Java.h
81+
source/me/sleepyfish/simpleClientBase/utils/Mapper.h
82+
source/me/sleepyfish/simpleClientBase/utils/unit/Vec3.h
83+
source/me/sleepyfish/simpleClientBase/utils/unit/Matrix.h
84+
source/me/sleepyfish/simpleClientBase/utils/RenderUtils.h
85+
source/me/sleepyfish/simpleClientBase/utils/unit/Vec4.h
86+
source/me/sleepyfish/simpleClientBase/utils/unit/Vec2.h
87+
88+
# util classes
89+
source/me/sleepyfish/simpleClientBase/utils/Utils.h
90+
source/me/sleepyfish/simpleClientBase/utils/ClickUtils.h
91+
source/me/sleepyfish/simpleClientBase/utils/ClientUtils.h
92+
source/me/sleepyfish/simpleClientBase/utils/Console.h
93+
source/me/sleepyfish/simpleClientBase/utils/MinecraftUtils.h
94+
95+
# sdkm classes
96+
source/me/sleepyfish/simpleClientBase/sdkm/SdkmClass.h
97+
source/me/sleepyfish/simpleClientBase/sdkm/impl/Minecraft.h
98+
source/me/sleepyfish/simpleClientBase/sdkm/impl/Minecraft.cpp
99+
source/me/sleepyfish/simpleClientBase/sdkm/impl/entity/Entity.h
100+
source/me/sleepyfish/simpleClientBase/sdkm/impl/entity/Entity.cpp
101+
source/me/sleepyfish/simpleClientBase/sdkm/impl/entity/EntityLivingBase.h
102+
source/me/sleepyfish/simpleClientBase/sdkm/impl/entity/EntityLivingBase.cpp
103+
source/me/sleepyfish/simpleClientBase/sdkm/impl/entity/EntityPlayer.h
104+
source/me/sleepyfish/simpleClientBase/sdkm/impl/entity/EntityPlayer.cpp
105+
source/me/sleepyfish/simpleClientBase/sdkm/impl/item/Item.h
106+
source/me/sleepyfish/simpleClientBase/sdkm/impl/item/Item.cpp
107+
source/me/sleepyfish/simpleClientBase/sdkm/impl/item/ItemStack.h
108+
source/me/sleepyfish/simpleClientBase/sdkm/impl/item/ItemStack.cpp
109+
source/me/sleepyfish/simpleClientBase/sdkm/impl/entity/EntityPlayerSP.cpp
110+
source/me/sleepyfish/simpleClientBase/sdkm/impl/entity/EntityPlayerSP.h
111+
source/me/sleepyfish/simpleClientBase/sdkm/impl/util/MovingObjectPosition.h
112+
source/me/sleepyfish/simpleClientBase/sdkm/impl/util/MovingObjectPosition.cpp
113+
source/me/sleepyfish/simpleClientBase/sdkm/impl/world/World.cpp
114+
source/me/sleepyfish/simpleClientBase/sdkm/impl/world/World.h
115+
source/me/sleepyfish/simpleClientBase/sdkm/impl/world/WorldClient.cpp
116+
source/me/sleepyfish/simpleClientBase/sdkm/impl/world/WorldClient.h
117+
source/me/sleepyfish/simpleClientBase/sdkm/impl/util/CTimer.h
118+
source/me/sleepyfish/simpleClientBase/sdkm/impl/util/CTimer.cpp
119+
source/me/sleepyfish/simpleClientBase/sdkm/impl/render/RenderManager.cpp
120+
source/me/sleepyfish/simpleClientBase/sdkm/impl/render/RenderManager.h
121+
source/me/sleepyfish/simpleClientBase/sdkm/impl/render/ActiveRenderInfo.cpp
122+
source/me/sleepyfish/simpleClientBase/sdkm/impl/render/ActiveRenderInfo.h
123+
source/me/sleepyfish/simpleClientBase/sdkm/java/FloatBuffer.cpp
124+
source/me/sleepyfish/simpleClientBase/sdkm/java/FloatBuffer.h
125+
source/me/sleepyfish/simpleClientBase/sdkm/java/JavaList.cpp
126+
source/me/sleepyfish/simpleClientBase/sdkm/java/JavaList.h
127+
128+
# interface classes
129+
source/me/sleepyfish/simpleClientBase/interface/Interface.cpp
130+
source/me/sleepyfish/simpleClientBase/interface/Interface.h
131+
source/me/sleepyfish/simpleClientBase/interface/hook/SwapBuffers.h
132+
source/me/sleepyfish/simpleClientBase/interface/hook/Keypress.h
133+
134+
)
135+
136+
# leave winm in its there so you can call and use the windows api properly
137+
# additional libraries can be added here
138+
target_link_libraries(SimpleClientBase PRIVATE
139+
winmm
140+
${JNI_LIBRARIES}
141+
opengl32
142+
)

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Simple Injection Client Base for Lunar 1.8.9
2+
3+
This is a simple lunar injection client base written in C++ built with CMake!
4+
5+
## Getting Started
6+
7+
To get started with this project, you'll need to have the following installed:
8+
9+
- CLion (https://www.jetbrains.com/clion/)
10+
- Visual Studio 2022 for the Toolchain (https://visualstudio.microsoft.com/de/vs/community/)
11+
12+
### On the Visual Studio 2022 Installation u need to choose Following individual installations
13+
#### Workloads:
14+
- Universal Windows Platform development
15+
16+
#### Individual:
17+
- MSVC v143 - VS 2022 C++ x64/x86 build tools (v14.38-17.8)
18+
- MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)
19+
- Windows 11 SDK (10.0.22621.0)
20+
- C++ CMake tools for Windows
21+
- IntelliCode
22+
23+
Once you have Clion and the parts above installed, go in CLion u might download some Plugins you know from IntelliJ because they may be on Clion also.
24+
Then go in the settings and add a new "Toolchain" under "Build, Execution, Deployment" click on the "+" then select
25+
"Visual Studio" and select your installation path. Then right under "Toolchains" is "CMake" and click twice on the "+" until "Debug" and "Release"
26+
shows up. Click on "Release" and make sure the "Toolchain" is selected to "Visual Studio"
27+
28+
### Usage
29+
To use the client base, simply build the executable and inject with your preferred injector.
30+
31+
###### Signed by SleepyFish.

dllMain.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Created by SleepyFish on 19-3-2025 for the SimpleInjectionClientBase project
2+
3+
#include "Windows.h"
4+
#include "source/me/sleepyfish/Client.h"
5+
6+
void Init(HMODULE mod) {
7+
Client::inst->setup();
8+
Client::inst->mainLoop();
9+
Client::inst->cleanup();
10+
FreeLibrary(mod);
11+
}
12+
13+
BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved) {
14+
15+
// checks if the dll action is attach
16+
if (dwReason == DLL_PROCESS_ATTACH) {
17+
DisableThreadLibraryCalls(hModule);
18+
19+
// create thread for the main loop passing argument hModule to the init function
20+
HANDLE hThread = CreateThread (
21+
nullptr, 0, (LPTHREAD_START_ROUTINE) (Init), hModule, 0, nullptr
22+
);
23+
24+
// close the thread
25+
if (hThread != nullptr)
26+
CloseHandle(hThread);
27+
}
28+
29+
return true;
30+
}

source/me/sleepyfish/Client.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Created by SleepyFish on 19-3-2025 for the SimpleInjectionClientBase project
2+
3+
#ifndef SIMPLECLIENTBASE_CLIENT_H
4+
#define SIMPLECLIENTBASE_CLIENT_H
5+
6+
#include "ClientMain.h"
7+
8+
class Client {
9+
public:
10+
static inline ClientMain* inst = new ClientMain();
11+
12+
};
13+
14+
#endif //SIMPLECLIENTBASE_CLIENT_H

source/me/sleepyfish/ClientMain.h

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
// Created by SleepyFish on 19-3-2025 for the SimpleInjectionClientBase project
2+
3+
#ifndef SIMPLECLIENTBASE_CLIENTMAIN_H
4+
#define SIMPLECLIENTBASE_CLIENTMAIN_H
5+
6+
#include "simpleClientBase/utils/Console.h"
7+
#include "simpleClientBase/sdkm/impl/Minecraft.h"
8+
#include "simpleClientBase/module/Manager.h"
9+
#include "simpleClientBase/utils/Java.h"
10+
#include "../../../libraries/minhook/minhook.h"
11+
#include "simpleClientBase/interface/Interface.h"
12+
#include "simpleClientBase/utils/Mapper.h"
13+
14+
class ClientMain {
15+
public:
16+
17+
bool running = false;
18+
Java* java = new Java();
19+
20+
Console* console = new Console();
21+
Manager* manager = new Manager();
22+
Minecraft* minecraft {};
23+
24+
void setup() {
25+
Console::setup();
26+
this->running = !this->java->setup();
27+
28+
if (this->running) {
29+
Mapper::setup();
30+
this->manager->setup();
31+
Interface::renderTextGui = manager->getModuleByName("text gui")->enabled;
32+
this->minecraft = new Minecraft();
33+
MH_Initialize();
34+
Interface::setup();
35+
}
36+
}
37+
38+
void mainLoop() {
39+
// main loop
40+
while (this->running) {
41+
if (Utils::hasIngameFocus()) {
42+
43+
// main event loop call
44+
if (!Interface::isGuiOpen) {
45+
if (!this->minecraft->isNull() && !this->minecraft->getPlayer().isNull()) {
46+
this->manager->tick();
47+
}
48+
}
49+
}
50+
51+
// sleep for 0.20 seconds
52+
Sleep(20L);
53+
}
54+
}
55+
56+
void cleanup() {
57+
if (!this->running) {
58+
printf("cleaned up1\n");
59+
Sleep(1000);
60+
61+
Interface::cleanup();
62+
printf("cleaned up2\n");
63+
Sleep(1000);
64+
65+
MH_Uninitialize();
66+
printf("cleaned up3\n");
67+
Sleep(1000);
68+
69+
this->manager->cleanup();
70+
printf("cleaned up4\n");
71+
Sleep(1000);
72+
73+
Mapper::cleanup();
74+
printf("cleaned up5\n");
75+
Sleep(1000);
76+
77+
this->java->cleanup();
78+
printf("cleaned up6\n");
79+
Sleep(1000);
80+
81+
printf("cleaned up7\n");
82+
Console::cleanup();
83+
Sleep(1000);
84+
}
85+
}
86+
87+
};
88+
89+
#endif //SIMPLECLIENTBASE_CLIENTMAIN_H

0 commit comments

Comments
 (0)