Hello,
I show you how to program a small trainer for MapleStory Europe in this tutorial.
You need
Visual Studio 2012 or 2013
1. Create a new project. Choose from Win32-Project.
Then click and "Next".
Choose "DLL" and check "Empty project". Then click on "Finish".
2. Rename the Folders.
Rename "Header Files" to "DLL".
Rename "Resource Files" to "Trainer".
Remove "Source Files".
Create a file in the folder "DLL" called "DLL.cpp"
Rightclick -> Add -> New Item
Create a Windows Form in the folder "Trainer" called "TrainerForm.h"
Rightclick -> Add -> New Item -> UI -> Windows Forms
And then Press "Yes".
Change "Debug" to "Release".
3. Codding
Go to the "DLL.cpp" file and write:
Code:
#include <windows.h>
extern void Main(void);
::BOOL WINAPI DllWork(__in::HMODULE hModule)
{
Main();
return true;
}
::BOOL WINAPI DllMain(__in::HMODULE hModule, __in::DWORD dwReason, __in __reserved::LPVOID lpvReserved)
{
::HANDLE hThread = NULL;
if (dwReason == DLL_PROCESS_ATTACH)
{
if ((hThread = ::CreateThread(NULL, 0, (::LPTHREAD_START_ROUTINE)&DllWork, (::HMODULE)hModule, 0, NULL)) == NULL)
{
return FALSE;
}
if (::CloseHandle(hThread) == FALSE)
{
}
}
return TRUE;
}
Click rightclick on the trainerform and press "View Code".
At the top you write then down this code:
Code:
#include <windows.h>
Go to the "TrainerForm.cpp" file and write:
Code:
#include "TrainerForm.h"
using namespace TutorialCherryHacks; // Change "TutorialCherryHacks" to your project name. In this case "TutorialCherryHacks"
void Main(void)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew TrainerForm);
Application::Exit();
}
Congratulation! You have now a trainer created.
4. Install Hack
Create a checkbox in the trainerform and press double click on it.
Change:
Code:
private: System::Void checkBox1_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
}
To
Code:
private: System::Void checkBox1_CheckedChanged(System::Object^ sender, System::EventArgs^ e);
I have a script because we are using today. (EMS v104.1)
Code:
[Enable]
00F0357B
DB 75
[Disable]
00F0357B
DB 74
Go back to the TrainerForm.cpp and write:
Code:
//Sithack
DWORD Hack = 0x00F0357B;
BYTE EnableHack[] = { 0x75 };
BYTE DisableHack[] = { 0x74 };
void TrainerForm::checkBox1_CheckedChanged(System::Object^ sender, System::EventArgs^ e)
{
if (this->checkBox1->Checked)
{
DWORD Temp;
VirtualProtect((void*)Hack, sizeof(EnableHack), PAGE_EXECUTE_READWRITE, &Temp);
memcpy((void*)Hack, EnableHack, sizeof(EnableHack));
VirtualProtect((void*)Hack, sizeof(EnableHack), Temp, &Temp);
}
else
{
DWORD Temp;
VirtualProtect((void*)Hack, sizeof(DisableHack), PAGE_EXECUTE_READWRITE, &Temp);
memcpy((void*)Hack, DisableHack, sizeof(DisableHack));
VirtualProtect((void*)Hack, sizeof(DisableHack), Temp, &Temp);
}
}
Finish!
If I could help you, give me a "Thank"!
Have Fun ;3