Re: [Tutorial]How to convert ASM script to C++
Posted: Sat Jun 19, 2010 11:58 am
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. =)
The community that will never stop discussing!
https://xemectrum.guyz92.men/
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. =)
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...
}
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...
}
}
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.
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
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:
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: