Что нового

[Процессы] Чтение значения адреса по указателю

siixth

Новичок
Сообщения
2
Репутация
0
Привет , первый день в AutoIt :scratch: И да - я все примеры посмотрел , не выходит чего-то
Есть процесс , через артмани нахожу для необходимого значения указатель , точнее там написано "Адрес в модуле" , думаю это оно.
напрмер
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))

но я уже всё натыкал..)
спасибо
 
Автор
S

siixth

Новичок
Сообщения
2
Репутация
0
Вы что блин ? Серьёзно ?
У меня не сильно такой сложный вопрос насколько я понимаю =)
 

Roman89

Новичок
Сообщения
107
Репутация
3
Похожую темку писал предок!
Попробуй найти его хак скилл!
Я тоже по ищу!
Если что найду отпишусь!
 
Верх