Привет , первый день в AutoIt И да - я все примеры посмотрел , не выходит чего-то
Есть процесс , через артмани нахожу для необходимого значения указатель , точнее там написано "Адрес в модуле" , думаю это оно.
напрмер
01B5BB74 - адрес в модуле
02F5BB74 - в данный момент хранится переменная тут. адрес.
разница всегда в первых трёх символах
из найденых примеров собрал следующее
задача: брать значение и писать в файл. во-первых 0x02F5BB74 - значение в памяти , это не указатель.
"конвертация" указателя в значение не получается верным.
и во-вторых - даже по прямому адресу не выводит текст , только цифры , не могу понять что менять =)
полюбому тут
или тут
но я уже всё натыкал..)
спасибо
Есть процесс , через артмани нахожу для необходимого значения указатель , точнее там написано "Адрес в модуле" , думаю это оно.
напрмер
01B5BB74 - адрес в модуле
02F5BB74 - в данный момент хранится переменная тут. адрес.
разница всегда в первых трёх символах
из найденых примеров собрал следующее
Код:
#include <nomadmemory.au3>
$AllodsProcessName = "processtitle"
$ProcessID = WinGetProcess($AllodsProcessName,"")
SetPrivilege("SeDebugPrivilege", 1)
If $ProcessID = -1 Then
MsgBox(4096, "ERROR", "Failed to detect MMO A1 running.")
Exit
EndIf
$DllInformation = _MemoryOpen($ProcessID)
If @Error Then
MsgBox(4096, "ERROR", "Failed to open memory.")
Exit
EndIf
Func _CurrentHP()
$CurrentHP = (_MemoryRead(0x02F5BB74, $DllInformation, 'ptr'))
If @Error Then
MsgBox(4096, "ERROR", "Failed to read memory.")
Exit
EndIf
Global $HPdec = dec(StringTrimLeft($CurrentHP, 2))
EndFunc
While 1 = 1
_CurrentHP()
$sFile = "11.txt"
$hWrite = FileOpen($sFile, 2)
FileWrite($hWrite, $HPdec)
Sleep(500)
Wend
задача: брать значение и писать в файл. во-первых 0x02F5BB74 - значение в памяти , это не указатель.
"конвертация" указателя в значение не получается верным.
Код:
#include <nomadmemory.au3>
Func _MemoryWrites5000() ; Функция изменяет кол-во денег в игре
$memory = _MemoryOpen (ProcessExists("process.exe")) ; Открываем память процесса
$pointer = 0x01B5BB74 ; Указатель вычесленный с помощью Artmoney
$data = 99 ; данные для изменения
$result = _MemoryRead($pointer, $memory) ; Читаем память (переменную) в которой находятся значения по указателю
$valueresult="0x" & hex($result) ; Преобразуем в hex - вид
$resultat = _MemoryWrite($valueresult, $memory, $data)
EndFunc
и во-вторых - даже по прямому адресу не выводит текст , только цифры , не могу понять что менять =)
полюбому тут
Код:
$CurrentHP = (_MemoryRead(0x02F5BB74, $DllInformation, 'ptr'))
или тут
Код:
Global $HPdec = dec(StringTrimLeft($CurrentHP, 2))
но я уже всё натыкал..)
спасибо