This is where will jump into the codecave script. We declare a jump that will jump to the codecave.ĬODE: SELECT ALL *(DWORD*)(g_dwBook + 1) = jmp(g_dwBook, MonsterBook) I'll explain what is in the function.ĬODE: SELECT ALL *(BYTE*) g_dwBook = 0xe9 Īs I stated, it is a jump into the inline assembly script. This is basically how a codecave script could be written in C++. Memcpy( (void*)g_dwBook, g_szBookMem, 5) //copy the original bytes back to the address *(DWORD*)(g_dwBook + 1) = jmp(g_dwBook, MonsterBook) // jmp to cave Memcpy(g_szBookMem, (void*)g_dwBook, 5)//copy clean memory Now, we need to create a function to call the inline ASM.ĬODE: SELECT ALL void tglMonsterBook(_in BOOL bEnable) It's kinda like, jump a word instead of byte(correct me if i'm wrong). It's because the codecave need to jump to the address 0095d04d, which have 5 bytes at the original address 0095d048.ĬODE: SELECT ALL jmp dword ptr
I know a lot of people doesn't really understand this, just follow the tutorial and you'll eventually understand it.Ĭreate a function for inline ASM and add the AA script into it.ĬODE: SELECT ALL _declspec(naked) void _stdcall MonsterBook()ĬODE: SELECT ALL g_dwBooKRet = g_dwBook + 5 But first, you have to define jump globally so that the function could jump into the inline ASM script.ĬODE: SELECT ALL #define jmp(frm, to) (int)(((int)to - (int)frm) - 5) ĬODE: SELECT ALL DWORD g_dwBook = 0x0095d048, g_dwBooKRet = g_dwBook + 5 Here is it.Īlright, for codecave script, you could use inline ASM to insert the script directly.
#Maplestory scripts cheat engine tutorial how to#
We are going to a more advance step, codecave, TBH, sometimes I have difficulties to convert some script also, but in these tutorial, I'll just teach you how to convert scripts that I know. Now you are successfully converted a simple AA script to C++. Memcpy((void*)dwInstantDropAddy, Disabledbytes, sizeof(Disabledbytes)) Memcpy((void*)dwInstantDropAddy, Enabledbytes, sizeof(Enabledbytes)) So, the bytes should be 00 00 00 00 00 00 00 00.Ĭreate variables for the address that will be edited in the script.ĬODE: SELECT ALL DWORD dwInstantDropAddy = 0x00af0dd0 ĭeclare a variable that will hold the bytes when the hack is enabled.ĬODE: SELECT ALL BYTE Enabledbytes = ĬODE: SELECT ALL void InstantDrop (_in BOOL bEnable) This is the part, while for the part, we see that,ĬODE: SELECT ALL add, al // bytes 00 00 (To learn on how to view Cheat Engine memory without getting HAD, LOOK HERE.)ĬODE: SELECT ALL add, al //bytes 00 00
Bracelet Sapphire 50m - 60m CoSMOS Gamehacking Tool and Cheat Scripts. Now to convert to a C++ script, you need to have it's bytes, which located in the memory view of Cheat Engine. Vindictus is the latest free-to-play game from Maple Story publisher Nexon. I don't include any dll stuff inside just merge it with the dll you've made. Yes, this is a tutorial including converting simple AA script, to codecave scripts.