i though it was coded in binary ?Nerrazzuri wrote:C++ can do more than you imagine, that's why Windows use C++ to code in. =)
[Tutorial]How to convert ASM script to C++
-
- Master of Darkness
- Posts: 431
- Joined: Sat Dec 12, 2009 9:01 pm
- Location: Heaven !
- Contact:
Re: [Tutorial]How to convert ASM script to C++
- Nerrazzuri
- Destiny General
- Posts: 1110
- Joined: Sun Dec 20, 2009 9:15 pm
Re: [Tutorial]How to convert ASM script to C++
Well, that's what I heard from some pro. XD
Selling my ultimate trainer for MapleStory SEA --> View below for screenshot
Click Here for more Information!

Click Here for more Information!

-
- Master of Darkness
- Posts: 431
- Joined: Sat Dec 12, 2009 9:01 pm
- Location: Heaven !
- Contact:
Re: [Tutorial]How to convert ASM script to C++
Borednes should sticky this
Re: [Tutorial]How to convert ASM script to C++
How can i use a hack with multiple addresses?
edit: nvm, figured it out.
edit2: nvm, I didn't
this is probably totally wrong
how do i do it properly?
edit: nvm, figured it out.
edit2: nvm, I didn't
this is probably totally wrong
Code: Select all
VOID BPHack(__in BOOL bEnable)
{
static BYTE normalbytes[] = {0x05, 0xe8, 0x03}; //DISABLED bytes of the hack
static BYTE hackonbytes[] = {0x05, 0x00, 0x00}; //ENABLED bytes of the hack
static DWORD HackAddr = 0x008C6B68; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static BYTE normalbytes2[] = {0x7d, 0x28}; //DISABLED bytes of the hack
static BYTE hackonbytes2[] = {0x90, 0x90}; //ENABLED bytes of the hack
static DWORD HackAddr2 = 0x0089526D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static BYTE normalbytes3[] = {0x7e, 0x0c}; //DISABLED bytes of the hack
static BYTE hackonbytes3[] = {0x90, 0x90}; //ENABLED bytes of the hack
static DWORD HackAddr3 = 0x00895289; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static BYTE normalbytes4[] = {0x8b, 0xf8, 0x83, 0xef, 0x1e}; //DISABLED bytes of the hack
static BYTE hackonbytes4[] = {0xbf, 0x00, 0x00, 0x00, 0x00,}; //ENABLED bytes of the hack
static DWORD HackAddr4 = 0x0089523D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
if(bEnable)
WriteAddress((LPVOID)HackAddr, hackonbytes, 3); //Number of ENABLED bytes...
else
WriteAddress((LPVOID)HackAddr, normalbytes, 3); //Number of DISABLED bytes...
if(bEnable)
WriteAddress((LPVOID)HackAddr2, hackonbytes2, 2); //Number of ENABLED bytes...
else
WriteAddress((LPVOID)HackAddr2, normalbytes2, 2); //Number of DISABLED bytes...
if(bEnable)
WriteAddress((LPVOID)HackAddr3, hackonbytes2, 2); //Number of ENABLED bytes...
else
WriteAddress((LPVOID)HackAddr3, normalbytes2, 2); //Number of DISABLED bytes...
if(bEnable)
WriteAddress((LPVOID)HackAddr4, hackonbytes2, 5); //Number of ENABLED bytes...
else
WriteAddress((LPVOID)HackAddr4, normalbytes2, 5); //Number of DISABLED bytes...
}
- Nerrazzuri
- Destiny General
- Posts: 1110
- Joined: Sun Dec 20, 2009 9:15 pm
Re: [Tutorial]How to convert ASM script to C++
There is not so much if else in a function LOL, you don't even know the basic of programming.jeezor wrote:How can i use a hack with multiple addresses?
edit: nvm, figured it out.
edit2: nvm, I didn't
this is probably totally wronghow do i do it properly?Code: Select all
VOID BPHack(__in BOOL bEnable) { static BYTE normalbytes[] = {0x05, 0xe8, 0x03}; //DISABLED bytes of the hack static BYTE hackonbytes[] = {0x05, 0x00, 0x00}; //ENABLED bytes of the hack static DWORD HackAddr = 0x008C6B68; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes2[] = {0x7d, 0x28}; //DISABLED bytes of the hack static BYTE hackonbytes2[] = {0x90, 0x90}; //ENABLED bytes of the hack static DWORD HackAddr2 = 0x0089526D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes3[] = {0x7e, 0x0c}; //DISABLED bytes of the hack static BYTE hackonbytes3[] = {0x90, 0x90}; //ENABLED bytes of the hack static DWORD HackAddr3 = 0x00895289; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes4[] = {0x8b, 0xf8, 0x83, 0xef, 0x1e}; //DISABLED bytes of the hack static BYTE hackonbytes4[] = {0xbf, 0x00, 0x00, 0x00, 0x00,}; //ENABLED bytes of the hack static DWORD HackAddr4 = 0x0089523D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 if(bEnable) WriteAddress((LPVOID)HackAddr, hackonbytes, 3); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr, normalbytes, 3); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr2, hackonbytes2, 2); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr2, normalbytes2, 2); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr3, hackonbytes2, 2); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr3, normalbytes2, 2); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr4, hackonbytes2, 5); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr4, normalbytes2, 5); //Number of DISABLED bytes... }
Code: Select all
VOID BPHack(__in BOOL bEnable)
{
static BYTE normalbytes[] = {0x05, 0xe8, 0x03}; //DISABLED bytes of the hack
static BYTE normalbytes2[] = {0x7d, 0x28}; //DISABLED bytes of the hack
static BYTE normalbytes3[] = {0x7e, 0x0c}; //DISABLED bytes of the hack
static BYTE normalbytes4[] = {0x8b, 0xf8, 0x83, 0xef, 0x1e}; //DISABLED bytes of the hack
static BYTE hackonbytes[] = {0x05, 0x00, 0x00}; //ENABLED bytes of the hack
static BYTE hackonbytes2[] = {0x90, 0x90}; //ENABLED bytes of the hack
static BYTE hackonbytes3[] = {0x90, 0x90}; //ENABLED bytes of the hack
static BYTE hackonbytes4[] = {0xbf, 0x00, 0x00, 0x00, 0x00,}; //ENABLED bytes of the hack
static DWORD HackAddr = 0x008C6B68; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static DWORD HackAddr2 = 0x0089526D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static DWORD HackAddr3 = 0x00895289; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static DWORD HackAddr4 = 0x0089523D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
if(bEnable)
{
WriteAddress((LPVOID)HackAddr, hackonbytes, 3); //Number of ENABLED bytes...
WriteAddress((LPVOID)HackAddr2, hackonbytes2, 2);
WriteAddress((LPVOID)HackAddr3, hackonbytes2, 2); //Number of ENABLED bytes...
WriteAddress((LPVOID)HackAddr4, hackonbytes2, 5); //Number of ENABLED bytes...
}
else
{
WriteAddress((LPVOID)HackAddr, normalbytes, 3); //Number of DISABLED bytes...
WriteAddress((LPVOID)HackAddr2, normalbytes2, 2); //Number of DISABLED bytes...
WriteAddress((LPVOID)HackAddr3, normalbytes2, 2); //Number of DISABLED bytes...
WriteAddress((LPVOID)HackAddr4, normalbytes2, 5); //Number of DISABLED bytes...
}
}
And your codes makes me laugh for a good 2 minutes.
Selling my ultimate trainer for MapleStory SEA --> View below for screenshot
Click Here for more Information!

Click Here for more Information!

Re: [Tutorial]How to convert ASM script to C++
It was that simple? >_> I really suck, huh.Nerrazzuri wrote:There is not so much if else in a function LOL, you don't even know the basic of programming.jeezor wrote:How can i use a hack with multiple addresses?
edit: nvm, figured it out.
edit2: nvm, I didn't
this is probably totally wronghow do i do it properly?Code: Select all
VOID BPHack(__in BOOL bEnable) { static BYTE normalbytes[] = {0x05, 0xe8, 0x03}; //DISABLED bytes of the hack static BYTE hackonbytes[] = {0x05, 0x00, 0x00}; //ENABLED bytes of the hack static DWORD HackAddr = 0x008C6B68; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes2[] = {0x7d, 0x28}; //DISABLED bytes of the hack static BYTE hackonbytes2[] = {0x90, 0x90}; //ENABLED bytes of the hack static DWORD HackAddr2 = 0x0089526D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes3[] = {0x7e, 0x0c}; //DISABLED bytes of the hack static BYTE hackonbytes3[] = {0x90, 0x90}; //ENABLED bytes of the hack static DWORD HackAddr3 = 0x00895289; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes4[] = {0x8b, 0xf8, 0x83, 0xef, 0x1e}; //DISABLED bytes of the hack static BYTE hackonbytes4[] = {0xbf, 0x00, 0x00, 0x00, 0x00,}; //ENABLED bytes of the hack static DWORD HackAddr4 = 0x0089523D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 if(bEnable) WriteAddress((LPVOID)HackAddr, hackonbytes, 3); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr, normalbytes, 3); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr2, hackonbytes2, 2); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr2, normalbytes2, 2); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr3, hackonbytes2, 2); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr3, normalbytes2, 2); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr4, hackonbytes2, 5); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr4, normalbytes2, 5); //Number of DISABLED bytes... }
well i know you'll just copy and paste that into your trainer. But whatever, good luck. But if you really wish to learn, I suggest you to learn what is the basic of C++ programming. Instead of using copy and paste.Code: Select all
VOID BPHack(__in BOOL bEnable) { static BYTE normalbytes[] = {0x05, 0xe8, 0x03}; //DISABLED bytes of the hack static BYTE normalbytes2[] = {0x7d, 0x28}; //DISABLED bytes of the hack static BYTE normalbytes3[] = {0x7e, 0x0c}; //DISABLED bytes of the hack static BYTE normalbytes4[] = {0x8b, 0xf8, 0x83, 0xef, 0x1e}; //DISABLED bytes of the hack static BYTE hackonbytes[] = {0x05, 0x00, 0x00}; //ENABLED bytes of the hack static BYTE hackonbytes2[] = {0x90, 0x90}; //ENABLED bytes of the hack static BYTE hackonbytes3[] = {0x90, 0x90}; //ENABLED bytes of the hack static BYTE hackonbytes4[] = {0xbf, 0x00, 0x00, 0x00, 0x00,}; //ENABLED bytes of the hack static DWORD HackAddr = 0x008C6B68; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static DWORD HackAddr2 = 0x0089526D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static DWORD HackAddr3 = 0x00895289; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static DWORD HackAddr4 = 0x0089523D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 if(bEnable) { WriteAddress((LPVOID)HackAddr, hackonbytes, 3); //Number of ENABLED bytes... WriteAddress((LPVOID)HackAddr2, hackonbytes2, 2); WriteAddress((LPVOID)HackAddr3, hackonbytes2, 2); //Number of ENABLED bytes... WriteAddress((LPVOID)HackAddr4, hackonbytes2, 5); //Number of ENABLED bytes... } else { WriteAddress((LPVOID)HackAddr, normalbytes, 3); //Number of DISABLED bytes... WriteAddress((LPVOID)HackAddr2, normalbytes2, 2); //Number of DISABLED bytes... WriteAddress((LPVOID)HackAddr3, normalbytes2, 2); //Number of DISABLED bytes... WriteAddress((LPVOID)HackAddr4, normalbytes2, 5); //Number of DISABLED bytes... } }
And your codes makes me laugh for a good 2 minutes.
- Nerrazzuri
- Destiny General
- Posts: 1110
- Joined: Sun Dec 20, 2009 9:15 pm
Re: [Tutorial]How to convert ASM script to C++
Yes.jeezor wrote:It was that simple? >_> I really suck, huh.Nerrazzuri wrote:There is not so much if else in a function LOL, you don't even know the basic of programming.jeezor wrote:How can i use a hack with multiple addresses?
edit: nvm, figured it out.
edit2: nvm, I didn't
this is probably totally wronghow do i do it properly?Code: Select all
VOID BPHack(__in BOOL bEnable) { static BYTE normalbytes[] = {0x05, 0xe8, 0x03}; //DISABLED bytes of the hack static BYTE hackonbytes[] = {0x05, 0x00, 0x00}; //ENABLED bytes of the hack static DWORD HackAddr = 0x008C6B68; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes2[] = {0x7d, 0x28}; //DISABLED bytes of the hack static BYTE hackonbytes2[] = {0x90, 0x90}; //ENABLED bytes of the hack static DWORD HackAddr2 = 0x0089526D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes3[] = {0x7e, 0x0c}; //DISABLED bytes of the hack static BYTE hackonbytes3[] = {0x90, 0x90}; //ENABLED bytes of the hack static DWORD HackAddr3 = 0x00895289; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static BYTE normalbytes4[] = {0x8b, 0xf8, 0x83, 0xef, 0x1e}; //DISABLED bytes of the hack static BYTE hackonbytes4[] = {0xbf, 0x00, 0x00, 0x00, 0x00,}; //ENABLED bytes of the hack static DWORD HackAddr4 = 0x0089523D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 if(bEnable) WriteAddress((LPVOID)HackAddr, hackonbytes, 3); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr, normalbytes, 3); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr2, hackonbytes2, 2); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr2, normalbytes2, 2); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr3, hackonbytes2, 2); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr3, normalbytes2, 2); //Number of DISABLED bytes... if(bEnable) WriteAddress((LPVOID)HackAddr4, hackonbytes2, 5); //Number of ENABLED bytes... else WriteAddress((LPVOID)HackAddr4, normalbytes2, 5); //Number of DISABLED bytes... }
well i know you'll just copy and paste that into your trainer. But whatever, good luck. But if you really wish to learn, I suggest you to learn what is the basic of C++ programming. Instead of using copy and paste.Code: Select all
VOID BPHack(__in BOOL bEnable) { static BYTE normalbytes[] = {0x05, 0xe8, 0x03}; //DISABLED bytes of the hack static BYTE normalbytes2[] = {0x7d, 0x28}; //DISABLED bytes of the hack static BYTE normalbytes3[] = {0x7e, 0x0c}; //DISABLED bytes of the hack static BYTE normalbytes4[] = {0x8b, 0xf8, 0x83, 0xef, 0x1e}; //DISABLED bytes of the hack static BYTE hackonbytes[] = {0x05, 0x00, 0x00}; //ENABLED bytes of the hack static BYTE hackonbytes2[] = {0x90, 0x90}; //ENABLED bytes of the hack static BYTE hackonbytes3[] = {0x90, 0x90}; //ENABLED bytes of the hack static BYTE hackonbytes4[] = {0xbf, 0x00, 0x00, 0x00, 0x00,}; //ENABLED bytes of the hack static DWORD HackAddr = 0x008C6B68; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static DWORD HackAddr2 = 0x0089526D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static DWORD HackAddr3 = 0x00895289; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 static DWORD HackAddr4 = 0x0089523D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11 if(bEnable) { WriteAddress((LPVOID)HackAddr, hackonbytes, 3); //Number of ENABLED bytes... WriteAddress((LPVOID)HackAddr2, hackonbytes2, 2); WriteAddress((LPVOID)HackAddr3, hackonbytes2, 2); //Number of ENABLED bytes... WriteAddress((LPVOID)HackAddr4, hackonbytes2, 5); //Number of ENABLED bytes... } else { WriteAddress((LPVOID)HackAddr, normalbytes, 3); //Number of DISABLED bytes... WriteAddress((LPVOID)HackAddr2, normalbytes2, 2); //Number of DISABLED bytes... WriteAddress((LPVOID)HackAddr3, normalbytes2, 2); //Number of DISABLED bytes... WriteAddress((LPVOID)HackAddr4, normalbytes2, 5); //Number of DISABLED bytes... } }
And your codes makes me laugh for a good 2 minutes.
Code: Select all
static BYTE normalbytes[] = {0x05, 0xe8, 0x03}; //DISABLED bytes of the hack
static BYTE normalbytes2[] = {0x7d, 0x28}; //DISABLED bytes of the hack
static BYTE normalbytes3[] = {0x7e, 0x0c}; //DISABLED bytes of the hack
static BYTE normalbytes4[] = {0x8b, 0xf8, 0x83, 0xef, 0x1e}; //DISABLED bytes of the hack
Code: Select all
static BYTE hackonbytes[] = {0x05, 0x00, 0x00}; //ENABLED bytes of the hack
static BYTE hackonbytes2[] = {0x90, 0x90}; //ENABLED bytes of the hack
static BYTE hackonbytes3[] = {0x90, 0x90}; //ENABLED bytes of the hack
static BYTE hackonbytes4[] = {0xbf, 0x00, 0x00, 0x00, 0x00,}; //ENABLED bytes of the hack
Code: Select all
static DWORD HackAddr = 0x008C6B68; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static DWORD HackAddr2 = 0x0089526D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static DWORD HackAddr3 = 0x00895289; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
static DWORD HackAddr4 = 0x0089523D; //73 ?? DD 45 0C DC 75 14 DC 4D 24 DC 01 DD 11
Selling my ultimate trainer for MapleStory SEA --> View below for screenshot
Click Here for more Information!

Click Here for more Information!

-
- Apprantice Knight
- Posts: 10
- Joined: Sat May 22, 2010 9:38 pm
Re: [Tutorial]How to convert ASM script to C++
EDIT: Nvm delete this.
-
- Apprantice Knight
- Posts: 10
- Joined: Sat May 22, 2010 9:38 pm
Re: [Tutorial]How to convert ASM script to C++
what do i do if the script jmps to an empty ret like this one:
(CSXRet in this case)
Code: Select all
alloc(CSX,100)
label(CSXReturn)
label(CSXRet)
CSX:
cmp dword ptr [00d4a358],00
je CSXReturn
push eax
mov eax,[00d4a358]//A1 ? ? ? ? 3B C7 0F 84 ? ? ? ? 6A FF
mov eax,[eax+3838]
cmp eax,50
pop eax
jg CSXReturn
push eax
mov eax,[00d4a358]
mov eax,[eax+1898]
cmp esi,eax
pop eax
jne CSXReturn
add eax,06
jmp CSXReturn
CSXReturn:
mov [ebx], eax
mov edi,[ebp+10]
jmp CSXRet
00AD2D4B://89 03 8B 7D 10 85 FF 74 5E FF
jmp CSX
CSXRet:
- Nerrazzuri
- Destiny General
- Posts: 1110
- Joined: Sun Dec 20, 2009 9:15 pm
Re: [Tutorial]How to convert ASM script to C++
Post your un-finished code here instead of asking people the do it for you.francesco149 wrote:what do i do if the script jmps to an empty ret like this one:(CSXRet in this case)Code: Select all
alloc(CSX,100) label(CSXReturn) label(CSXRet) CSX: cmp dword ptr [00d4a358],00 je CSXReturn push eax mov eax,[00d4a358]//A1 ? ? ? ? 3B C7 0F 84 ? ? ? ? 6A FF mov eax,[eax+3838] cmp eax,50 pop eax jg CSXReturn push eax mov eax,[00d4a358] mov eax,[eax+1898] cmp esi,eax pop eax jne CSXReturn add eax,06 jmp CSXReturn CSXReturn: mov [ebx], eax mov edi,[ebp+10] jmp CSXRet 00AD2D4B://89 03 8B 7D 10 85 FF 74 5E FF jmp CSX CSXRet:
Selling my ultimate trainer for MapleStory SEA --> View below for screenshot
Click Here for more Information!

Click Here for more Information!
