#include <NomadMemory.au3>
Local $eOffset = 0x00A6386C
Local $eShift = 0x00000004;На сколько смещаемся от $eOffset.
Local $eLengh = 1;Сколько считать байтов начиная с $eOffset + $eLengh
$ePID = ProcessExists("process.exe")
If Not $ePID Then
MsgBox(0,0,"Процесс не найден!")
Exit 1337
EndIf
$eMemory = _MemoryOpen($ePID)
$eRead = _MemoryRead(String($eOffset + $eShift), $eMemory, "byte[" & $eLengh & "])"
MsgBox(0,0,BinaryToString($eRead) & @CRLF & $eRead)
Exit
#include <nomadmemory.au3> ;подключаем необходимую библиотеку
GUICreate("Хп",220,50) ;создаем интерфейс
$gui_ph=GUICtrlCreateLabel("",10,10,200,20) ;создаём элемент интерфейса
GUISetState() ;показываем интерфейс
$proces_name="nksp.exe" ;задаём имя процесса
$adres_base=0x10722f08 ;задаём базовый адрес
$adres_ofset=0x109688 ;задаём офсет (смещение)
$PID=ProcessExists($proces_name) ;получаем PID по имяни процесса
$proces_memory = _MemoryOpen($PID) ;открываем память
While 1 ;создаём бесконечный цикл
$base=_MemoryRead($adres_base, $proces_memory) ;читаем значение базового адреса
$hp=_MemoryRead($base+$adres_ofset, $proces_memory) ;читаем значение конечного адреса которое получили суммируя значение базового адреса и офсета
GUICtrlSetData($gui_ph,$hp) ;записываем в элемент интерфейса значение
$msg=GUIGetMsg()
if $msg=-3 Then Exit
WEnd
#include <nomadmemory.au3> ;подключаем необходимую библиотеку
GUICreate("Хп",220,50) ;создаем интерфейс
$gui_ph=GUICtrlCreateLabel("",10,10,200,20) ;создаём элемент интерфейса
GUISetState() ;показываем интерфейс
$proces_name="nksp.exe" ;задаём имя процесса
$adres_base=0x10722f08 ;задаём базовый адрес
$adres_ofset1=0x4 ;задаём офсет (смещение)
$adres_ofset2=0x4
#include <nomadmemory.au3> ;подключаем необходимую библиотеку
GUICreate("Хп",220,50) ;создаем интерфейс
$gui_ph=GUICtrlCreateLabel("",10,10,200,20) ;создаём элемент интерфейса
$gui_ph2=GUICtrlCreateLabel("",10,30,200,20) ;создаём элемент интерфейса
GUISetState() ;показываем интерфейс
$proces_name="nksp.exe" ;задаём имя процесса
$adres_base=0x10722f08 ;задаём базовый адрес
$adres_ofset=0x109688 ;задаём офсет (смещение)
$adres_ofset2=0x109888 ;задаём офсет (смещение)
$PID=ProcessExists($proces_name) ;получаем PID по имяни процесса
$proces_memory = _MemoryOpen($PID) ;открываем память
While 1 ;создаём бесконечный цикл
$base=_MemoryRead($adres_base, $proces_memory) ;читаем значение базового адреса
$hp=_MemoryRead($base+$adres_ofset, $proces_memory) ;читаем значение конечного адреса которое получили суммируя значение базового адреса и офсета
$hp2=_MemoryRead($base+$adres_ofset2, $proces_memory) ;читаем значение конечного адреса которое получили суммируя значение базового адреса и офсета2
GUICtrlSetData($gui_ph,$hp) ;записываем в элемент интерфейса значение
GUICtrlSetData($gui_ph2,$hp2) ;записываем в элемент интерфейса значение
$msg=GUIGetMsg()
if $msg=-3 Then Exit
WEnd
#include <NomadMemory.au3>
Local $eLengh = 1 ;Длинна считываемого значения(в байтах)
Local $ePoint = 0x00A6386C ;Поинт
Local $eOffset1 = 0x00000008 ;На сколько смещаемся от поинта (1)
Local $eOffset2 = 0x00000004 ;На сколько смещаемся от поинта (2)
GUICreate("GUI",200,110,-1,-1)
$tHP = GUICtrlCreateLabel("HP(off1): ",10,10,180,20)
$tHP2 = GUICtrlCreateLabel("HP(off2): ",10,35,180,20)
$tHP3 = GUICtrlCreateLabel("HP(off1 + off2): ",10,60,180,20)
$tRead = GUICtrlCreateButton("Read",10,85,180,20)
GUISetState()
$ePID = ProcessExists("process.exe")
If Not $ePID Then
MsgBox(0,0,"Процесс не найден!")
Exit 1337
EndIf
$eMemory = _MemoryOpen($ePID)
While 1
$GUI_msg = GUIGetMsg()
If $GUI_msg = -3 Then
Exit
ElseIf $GUI_msg = $Button Then
$eOffset = GUICtrlRead($Edit)
If $eOffset = "" Then ExitLoop
GUICtrlSetData($tHP,"HP(off1): " & BinaryToString(_MemoryRead(String($ePoint + $eOffset1), $eMemory, "byte[" & $eLengh & "]")))
GUICtrlSetData($tHP2,"HP(off2): " & BinaryToString(_MemoryRead(String($ePoint + $eOffset2), $eMemory, "byte[" & $eLengh & "]")))
GUICtrlSetData($tHP3,"HP(off1 + off2): " & BinaryToString(_MemoryRead(String($ePoint + $eOffset1 + $eOffset2), $eMemory, "byte[" & $eLengh & "]")))
EndIf
WEnd
#include <nomadmemory.au3> ;подключаем необходимую библиотеку
GUICreate("Хп",220,50) ;создаем интерфейс
$gui_ph=GUICtrlCreateLabel("",10,10,200,20) ;создаём элемент интерфейса
GUISetState() ;показываем интерфейс
$proces_name="R2Client.exe.exe" ;задаём имя процесса
$adres_base=0x1186884 ;задаём базовый адрес
$adres_ofset1=0x40 ;задаём офсет (смещение)
$adres_ofset2=0x40 ;задаём офсет (смещение)
$PID=ProcessExists($proces_name) ;получаем PID по имяни процесса
$proces_memory = _MemoryOpen($PID) ;открываем память
While 1 ;создаём бесконечный цикл
$base=_MemoryRead($adres_base, $proces_memory) ;читаем значение базового адреса
$hp=_MemoryRead($base+$adres_ofset1+$adres_ofset2, $proces_memory) ;читаем значение конечного адреса которое получили суммируя значение базового адреса и офсета
GUICtrlSetData($gui_ph,$hp) ;записываем в элемент интерфейса значение
$msg=GUIGetMsg()
if $msg=-3 Then Exit
WEnd
$base=_MemoryRead($adres_base, $proces_memory) ;читаем значение базового адреса
$hp=_MemoryRead($base+$adres_ofset1+$adres_ofset2, $proces_memory) ;читаем значение конечного адреса которое получили суммируя значение базового адреса и офсета
#include <NomadMemory.au3>
Local $eLengh = 1 ;Длинна считываемого значения(в байтах)
Local $ePoint = 0x0063A834 ;Поинт
Local $eOffset1 = 0x00000079 ;На сколько смещаемся от поинта (1)
Local $eOffset2 = 0x000000e8 ;На сколько смещаемся от поинта (2)
Local $eOffset3 = 0x00000118 ;На сколько смещаемся от поинта (3)
GUICreate("GUI",200,140,-1,-1)
$tHP = GUICtrlCreateLabel("HP(off1): ",10,10,180,20)
$tHP2 = GUICtrlCreateLabel("HP(off2): ",10,35,180,20)
$tHP2 = GUICtrlCreateLabel("HP(off3): ",10,60,180,20)
$tHP3 = GUICtrlCreateLabel("HP(off1 + off2 + off3): ",10,85,180,20)
$tRead = GUICtrlCreateButton("Read",10,110,180,20)
GUISetState()
$ePID = ProcessExists("Divina.bin")
If Not $ePID Then
MsgBox(0,0,"Процесс не найден!")
Exit 1337
EndIf
$eMemory = _MemoryOpen($ePID)
While 1
$GUI_msg = GUIGetMsg()
If $GUI_msg = -3 Then
Exit
ElseIf $GUI_msg = $tRead Then
$eOffset = GUICtrlRead($Edit)
If $eOffset = "" Then ExitLoop
GUICtrlSetData($tHP,"HP(off1): " & BinaryToString(_MemoryRead(String($ePoint + $eOffset1), $eMemory, "byte[" & $eLengh & "]")))
GUICtrlSetData($tHP2,"HP(off2): " & BinaryToString(_MemoryRead(String($ePoint + $eOffset2), $eMemory, "byte[" & $eLengh & "]")))
GUICtrlSetData($tHP3,"HP(off3): " & BinaryToString(_MemoryRead(String($ePoint + $eOffset3), $eMemory, "byte[" & $eLengh & "]")))
GUICtrlSetData($tHP4,"HP(off1 + off3 + off4): " & BinaryToString(_MemoryRead(String($ePoint + $eOffset1 + $eOffset2 + $eOffset3), $eMemory, "byte[" & $eLengh & "]")))
EndIf
WEnd
(29) : ==> Variable used without being declared.:
$eOffset = GUICtrlRead($Edit)
$eOffset = GUICtrlRead(^ ERROR
Например:
Поинтер: 0x00A6386C
Оф1: 0x8
Оф2: 0x4
$pid = WinGetProcess("TitleProc")
$MO = _MemoryOpen($pid)
Func mempoint($Mem, $Offset1, $Offset2, $Offset3, $Offset4, $Offset5)
$MemOffset = (_MemoryRead($Mem, $MO, 'ptr'))
$Mem = $MemOffset + Dec($Offset1)
If $Offset2 <> "false" Then
$MemOffset = (_MemoryRead($Mem, $MO, 'ptr'))
$Mem = $MemOffset + Dec($Offset2)
EndIf
If $Offset3 <> "false" Then
$MemOffset = (_MemoryRead($Mem, $MO, 'ptr'))
$Mem = $MemOffset + Dec($Offset3)
EndIf
If $Offset4 <> "false" Then
$MemOffset = (_MemoryRead($Mem, $MO, 'ptr'))
$Mem = $MemOffset + Dec($Offset4)
EndIf
If $Offset5 <> "false" Then
$MemOffset = (_MemoryRead($Mem, $MO, 'ptr'))
$Mem = $MemOffset + Dec($Offset5)
EndIf
Return $Mem
EndFunc
$dynamicadr = mempoint("0x00A6386C", "0x8", "0x4", "false", "false", "false")
_MemoryPointerRead
$PROCESS_ID = WinGetProcess($TITLE)
$PROCESS_INFO = _MemoryOpen($PROCESS_ID)
Dim $OFFSETS[3]
$OFFSETS[1] = 8
$OFFSETS[2] = 4
$VALUE = _MemoryPointerRead("0x00A6386C", $PROCESS_INFO, $OFFSETS)
MsgBox(0,"Value", $VALUE)