Here is the modified code for other people that want to read double
--lua local PROCESS_VM_READ = 0x0010 local ffi = require("ffi") local user, kernel = ffi.load('User32'), ffi.load('Kernel32') ffi.cdef[[ int OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); int GetWindowThreadProcessId(int hWnd, int *lpdwProcessId); bool CloseHandle(int hObject); bool ReadProcessMemory(int hProcess, int lpBaseAddress, void *lpBuffer, int nSize, int *lpNumberOfBytesRead); ]] function readmemory(address) if workwindow() == 0 then log('No Workwindow') return -1 end local PID, pointer_double = ffi.new('unsigned long[1]'), ffi.new('double[1]') user.GetWindowThreadProcessId(workwindow(), PID) local process = kernel.OpenProcess(PROCESS_VM_READ, true, PID[0]) if process > 0 then kernel.ReadProcessMemory(process, address, pointer_double, 8, nil) kernel.CloseHandle(process); return tonumber(pointer_double[0]) end log('Proccess not open.') return -2 end playerptr = readmem (0xAB0F78, "D") local hp = readmemory(playerptr + 0x4b0) --this is Double playerX = readmem (0xAB14C8, "double") --this is 4byte log ('clear') log ("HP= ",hp," ", "PlayerX = ",playerX)
|