ahmedmola1 (10-06-2012),ISM43L (10-07-2012),l4rs (10-06-2012),MagicWar (10-06-2012),xbqwer123 (10-07-2012)
Hello guys,
Wanted to share with you my new detour function:
it does the same as the old detour function but the code is optimized and the variables now have better names !Code:void PlaceJMP( BYTE *bt_DetourAddress, DWORD dw_FunctionAddress, DWORD dw_Size) { DWORD dw_OldProtection, dw_Distance; VirtualProtect(bt_DetourAddress, dw_Size, PAGE_EXECUTE_READWRITE, &dw_OldProtection); dw_Distance = (DWORD)(dw_FunctionAddress - (DWORD)bt_DetourAddress) - 5; *bt_DetourAddress = 0xE9; *(DWORD*)(bt_DetourAddress + 0x1) = dw_Distance; for(int i = 0x5; i < dw_Size; i++) *(bt_DetourAddress + i) = 0x90; VirtualProtect(bt_DetourAddress, dw_Size, dw_OldProtection, NULL); return; }
The surprise:
The simple memory hacking is still possible@giniyat101 you were right
any way not even "CreateThread" function needed or hook
![]()
ahmedmola1 (10-06-2012),ISM43L (10-07-2012),l4rs (10-06-2012),MagicWar (10-06-2012),xbqwer123 (10-07-2012)
Best !!! Good work !!
Thanks For sharing
Good Jop
Thanks+Resp
Contact Me!
My Project List
Make Simble Hack()
Make 3 Features Hack()
Make Hack 10 Feat()
Make Hack 15 Feat()
Makeing Hot Keys()
Makeing D3D Menu()
Makeing VIP Hack()Done 70%
-------------------------------------------------
Leecher: 0 ()
Choob: 25 ()
Newbie: 50 ()
Member: 100 ()
Advanced Member: 150 ()
Dual-Keyboard Member: 250 ()
Expert Member: 500 ()
Bobo's Trainer: 750 ()
MPGH Expert: 1000 ()
Synthetic Hacker: 1250 ()
Blackhat Hacker: 1500 ()
Whitehat Hacker: 2000 ()
Bobo's Guardian: 2500 ()
Upcoming MPGHiean: 3000 ()
MPGH Addict: 3500 ()
MPGHiean: 4000 ()
MPGH Knight: 4500 ()
MPGH Lord: 5000 ()
MPGH Champion: 5500 ()
MPGH King: 6000 ()
MPGH Legend: 6500 ()
MPGH God: 7000 ()
MPGH God II: 7500 ()
MPGH God III: 8000 ()
MPGH God IV: 8500 ()
MPGH God V: 9000 ()
Arun's Slave: 9500 ()
Dave's Slave: 10000 ()
Same concept: but Thanks for it
Pls Refer this thread by Swag Postvoid MakeJMP( BYTE *pAddress, DWORD dwJumpTo, DWORD dwLen )
{
DWORD dwOldProtect, dwBkup, dwRelAddr;
VirtualProtect(pAddress, dwLen, PAGE_EXECUTE_READWRITE, &dwOldProtect);
dwRelAddr = (DWORD) (dwJumpTo - (DWORD) pAddress) - 5;
*pAddress = 0xE9;
*((DWORD *)(pAddress + 0x1)) = dwRelAddr;
for(DWORD x = 0x5; x < dwLen; x++) *(pAddress + x) = 0x90;
VirtualProtect(pAddress, dwLen, dwOldProtect, &dwBkup);
return;
}
Last edited by firefox800; 10-06-2012 at 09:32 AM.
Good Work .. Thanx For Sharing
![]()
Best CoderS :~
@Ramo
@Karemm111
@Dragon(H)ell
@CodeSkills
ahmedmola1 (10-06-2012)
i can confirm you just "modified" it
no one ends a void function with "return" twice.
[img]https://i43.photobucke*****m/albums/e367/DeteSting/Steam-update.gif[/img]
optimized for the namebut the function itself... waley
![]()