skip to main |
skip to sidebar
RSS Feeds
Giving the best hacks for MapleStory SEA.
Giving the best hacks for MapleStory SEA.
2:52 AM
Posted by Nerrazzuri
Well since a lot of you guys asking me on how to make a trainer, I'll just post a tutorial on how to make a simple trainer like I've released. This was a total spoon feed so it will be copy and paste and edit. First, there are few things you need:
1. Microsoft Visual Studio 2010
2. A lil knowledge about Assembly.
Ok, let's start this. Run your Microsoft Visual Studio 2010. Click New Project->Win32 and Enter your Project name. Lets say Trainer. Click Ok and next, choose DLL and Empty project. Now you are in Trainer.cpp blank page. Ok, now go Solution Explorer(You could find it easily a View tab) and you'll see 4 things there:
1. External Dependencies
2. Header Files
3. Resource Files
4. Source Files
//Tubi(Updated by nerrazzuri msea v93)
[enable]
00488AA6: //75 ? 83 7C 24 ? ? 75 ? 8B ? ? ? ? ? FF 70 ? 83 C0 ? 50
DB 90 90
[disable]
00488AA6: //75 ? 83 7C 24 ? ? 75 ? 8B ? ? ? ? ? FF 70 ? 83 C0 ? 50
jne 00488ADE //byte 75 36
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#include Window.h (add <>, I couldn't add here)
#include tchar.h (add <>, I couldn't add here)
//ADD HACKS BELOW *THIS IS KINDA LIKE A LIST OF THE HACKS YOU ARE ADDING*
void SuperTubi(__in BOOL bEnable);//To add in more hacks, simply copy this line and paste it at the bottom, and change the name SuperTubi to others for example NoKnockBack.
#include Window.h (add <>, I couldn't add here)
#include tchar.h (add <>, I couldn't add here)
extern HINSTANCE g_h_main_instance;
#include Window,h (add <>, I couldn't add here)
#include stdlib.h (add <>, I couldn't add here)
#include CommCtrl (add <>, I couldn't add here)
#include "resource.h"
DWORD WINAPI CreateGUIThread(__in LPVOID lParam);
INT_PTR CALLBACK DialogProc(__in HWND hwndDlg,__in UINT uMsg,__in WPARAM wParam,__in LPARAM lParam);
#include "dllmain.h"
#include "gui.h"
HINSTANCE g_h_main_instance;
BOOL WINAPI DllMain(__in HINSTANCE hinstDLL, __in DWORD fdwReason, __in LPVOID lpvReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
g_h_main_instance = hinstDLL;
DisableThreadLibraryCalls(hinstDLL);
CreateThread(0, 0, CreateGUIThread, 0, 0, 0);
break;
}
return TRUE;
}
#include "gui.h"
#include "dllmain.h"
#include "cheats.h"
DWORD WINAPI CreateGUIThread(__in LPVOID lParam)
{
DialogBox(g_h_main_instance, MAKEINTRESOURCE(IDD_DIALOG1), 0, DialogProc);
return 0;
}
INT_PTR CALLBACK DialogProc(__in HWND hwndDlg,__in UINT uMsg,__in WPARAM wParam,__in LPARAM lParam)
{
int checked;
switch(uMsg)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_CHECK1:
checked = IsDlgButtonChecked(hwndDlg, IDC_CHECK1);
SuperTubi(checked);
break;
}
break;
case WM_CLOSE:
EndDialog(hwndDlg, 0);
break;
}
return 0;
}
#include "Trainer.h"
BOOL WriteAddress(__in LPVOID lpcvBase, __in LPCVOID lpcvWriteValue, __in size_t uSize)
{
DWORD old_protection = 0;
__try
{
if(VirtualProtect(lpcvBase, uSize, PAGE_READWRITE, &old_protection))
{
memcpy_s(lpcvBase, uSize, lpcvWriteValue, uSize);
VirtualProtect(lpcvBase, uSize, old_protection, &old_protection);
}
else
return FALSE;
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
return FALSE;
}
return TRUE;
}
VOID SuperTubi(__in BOOL bEnable)
{
static BYTE normalbytes[] = {0x75, 0x36}; //DISABLED bytes of the hack
static BYTE hackonbytes[] = {0x90, 0x90}; //ENABLED bytes of the hack
static DWORD HackAddr = 0x00488AA6; //Address of the hack
if(bEnable)
WriteAddress((LPVOID)HackAddr, hackonbytes, 2); //Number of ENABLED bytes...
else
WriteAddress((LPVOID)HackAddr, normalbytes, 2); //Number of DISABLED bytes...
}
static BYTE normalbytes[] = {0x75, 0x36};Your original bytes.(The one found in Cheat Engine.)
static BYTE hackonbytes[] = {0x90, 0x90};Your edited bytes.(90 = nop = do nothing)
static DWORD HackAddr = 0x00488AA6;Your hack address.
WriteAddress((LPVOID)HackAddr, hackonbytes, 2);The bytes you need to activate the hacks. (Super tubi have 2 because 90 90, so if your hack bytes are 90 90 90, then change the 2 to 3)
WriteAddress((LPVOID)HackAddr, normalbytes, 2);Your disable bytes amount.(Change it if you have different amount)
May 27, 2010 at 5:11 AM
hi, what a cool tutorial! great job. :)
Btw, i am a C# programmer. not really familiar with those c++ syntax. I am thinking to convert all to C#. Hope can get some helps from you. Mind to send me the source code? Thx first. ;) khing37@gmail.com
May 27, 2010 at 10:44 AM
Well, my tutorial was a total spoon feed, you doesn't need my source to get that work. Anyway, I'm not familiar with C#, so I don't think I could help you much LOL.
May 28, 2010 at 6:35 AM
good job dude ~
;DDDDDDDDDDDDDDDDDDDddd
♥♥♥♥♥♥♥♥♥♥
May 28, 2010 at 10:32 AM
Thanks Chance.
November 19, 2010 at 11:12 PM
This spoon feed dosent work for me. Whe you say"Go back to the Solution Explorer->Right Click at the Resource Files. Add a Resource(not item) and choose Dialog(DO NOT CLICK THE +, click Dialog and click new and you'll bring to a Dialog Box which is like below:" I don't have that option.