Outdated ! NO UPDATE ANYMORE
Used Detour.au3 ( search epvp detours au3 udf ) - to bad internet to put link
Code:
Dim $Handle_Process = OpenProcess($_PROCESS_ALL_ACCESS, 1, ProcessExists("S4Client.exe"))
Dim $Module_S4Client = ProcessModuleGetBaseAddress($Handle_Process, "S4Client.exe") ; make a own function
Dim $ITM_Address = "0x" & Hex($Module_S4Client + Dec("9D4656")) ; 89 45 B4 8B 4D B4 8B 51 20 89 55 B0 8B 45 B0 3B 45 AC 75 09 C7 45 F0 01 00 00 00 EB 07 C7 45 F0 00 00 00 00 0F B6 4D F0 85 C9
Dim $Page = Hex(VirtualAllocEx($Handle_Process,0,4,0x3000,0x4),8)
VirtualProtectEx($Handle_Process,$ITM_Address,6,$PAGE__EXECUTE__READWRITE)
Dim $ScoreCode = '0x89/0x05' & Byte_Reverse($Page) &'/0x89/0x45/0xB4/0x8B/0x4D/0xB4'
Dim $Detour = Detour($Handle_Process,$ITM_Address,$ScoreCode,5)
MemSet($Handle_Process,$ITM_Address + 0x5,0x90,0)
Func Byte_Reverse($sBytes)
Local $sReversed = ""
For $i = StringLen($sBytes) - 1 To 1 Step -2
$sReversed &= "/0x" & StringMid($sBytes, $i, 2)
Next
Return $sReversed
EndFunc ;==>Byte_Reverse
Code:
Dim $Read = ReadProcessMemory($Handle_Process,'0x' & $Page, 'dword')+ 0x28 = Hair 0x30 = Face 0x38 = Shirt 0x40 = Jean 0x48 = Gloves 0x50 = Shoes 0x58 = Accessorie 0x60 = Pet 0xB8 = Weapon_01 0xC0 = Weapon_02 0xC8 = Weapon_03 0x118 = Skill