I can get the base address of the game.dll module but I cannot for the life of me get any information from the target such as level.
Coding in autoit3.
This function is what I use to get the game.dll base address as teh nomad version won't work for me for what ever reason.
PHP Code:
Func _ProcessGetModuleBase($ivPID, $svModuleName)
$ivPID = ProcessExists($ivPID)
If Not $ivPID Then Return(SetError(1, 0, 0)); Process does not exist
Local Const $TH32CS_SNAPMODULE = 0x00000008
Local Const $sMODULEENTRY32Struct = "dword Size;" & _
"dword 32ModuleID;" & _
"dword 32ProcessID;" & _
"dword GlblcntUsage;" & _
"dword ProccntUsage;" & _
"ptr modBaseAddr;" & _; <---- hmm ?
"dword modBaseSize;" & _
"hwnd hModule;" & _
"char Module[255];" & _
"char ExePath[260]"
Local $hvSnapShot = DllCall("Kernel32.dll", "hwnd", "CreateToolhelp32Snapshot", "dword", $TH32CS_SNAPMODULE, "dword", $ivPID)
If Not $hvSnapShot[0] Then Return(SetError(2, 0, 0)); Could not create snapshot?
Local $stMODULEENTRY32 = DllStructCreate($sMODULEENTRY32Struct)
DllStructSetData($stMODULEENTRY32, "Size", DllStructGetSize($stMODULEENTRY32))
Local $ivState = DllCall("Kernel32.dll", "int", "Module32First", "hwnd", $hvSnapShot[0], "long_ptr", DllStructGetPtr($stMODULEENTRY32))
If Not $ivState[0] Then Return(SetError(3, _WinAPI_CloseHandle($hvSnapShot[0]), 0)); Could not enumerate first module in list?
Local $ivRet = 0
Local $svModule
Do
$ivRet = DllStructGetData($stMODULEENTRY32, "modBaseAddr")
$svModule = DllStructGetData($stMODULEENTRY32, "Module")
If $svModule = $svModuleName Then ExitLoop
$ivState = DllCall("Kernel32.dll", "int", "Module32Next", "hwnd", $hvSnapShot[0], "long_ptr", DllStructGetPtr($stMODULEENTRY32))
Sleep(1)
Until Not $ivState[0]
DllCall("Kernel32.dll", "int", "CloseHandle", "int", $hvSnapShot[0])
Return $ivRet
EndFunc
This is the code i'm actually calling and nothing is being returned from it, its always 0.
PHP Code:
Func getTargetLevel()
$StaticOffset = Dec("4F68FC"); this hex value is the entrypoint
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR2 = _ProcessGetModuleBase($PID, "Game.dll")
$finalAddr = "0x" & Hex($baseADDR2 + $StaticOffset)
$out = Read_Memory($PID, $finalAddr)
$out = Read_Memory($PID, $out + 0x1C4)
$out = Read_Memory($PID, $out + 0x0032)
Return $out
EndFunc
Any help or examples would be great.