Помощь - Поиск - Пользователи - Календарь
Полная версия: Readmem - базовый адрес
UoKit.com Форумы > Кликер > UO Pilot
NovyjPilot
Доброго времени суток!

Хочу спросить есть ли в пилоте возможность считать базовый адрес который не является статическим? До введения ASLR всё было просто и базовым адресом было 0x00400000.

Теперь ситуатциа немного усложнилась.
Пример как это отображается в CheatEngine:
"game.exe"+0043C424 (ну и там дальше идут доп. оффсеты)

Есть ли в пилоте встроенная возможность получить этот базовый адрес для game.exe который является исходной точкой?
DarkMaster
Цитата
Добавил модульную адресацию в командах работы с памятью.
'readmem <variable> <address> <type> <size> [modulename]'
'writemem <variable> <address> <type> [ModuleName] [result]'

NovyjPilot
Спасибо большое всё работает! Извините что сразу не заметил просто на вики в Синтaксис стоит более простой вариант а в changelog уже с доп информацией.

Код
 Синтаксис
Привязка к окну: да.
Работа со свернутым окном: да.

readmem <переменная_куда_сохранять_результат> <адрес> <тип_данных>
Тип данных: B:byte = 1b; W:word = 2b; D:dWord = 4b; C:char = 1b; S:String = 1-255b; DO:double = 8b; F:float = 4b; R:real = 6b (см.примеры)


Спасибо вам за программу и труд!
neves
Здравствуйте. Можете ли вы привести пример с [modulename]. Я тоже пытаюсь получить базовый адрес, но безуспешно. Спасибо.
DarkMaster
Вам нужно именно получить базовый адрес или считать со смещеним от базового?
Чтобы получить именно базовый адрес как-то так:
Код

local base_address = relativeaddress2absolute ("имя_модуля", address)
log (base_address)

Считать со смещением:
local result = readmem (address, type, modulename)
типа:
local result = readmem (0x00001234, "d", "my.dll")
omegam
Доброго времени суток.
Уже пару дней страдаю пытаясь считать адресс. Чит энджин выдает такой поинтер:
Game.exe+59EA39C со смещением Е8
Я написла такой код:
Код

set #point0 0x059EA39C + 0xE8
readmem #out #point0 b Game.exe
log #out


Чит энджин выдает значение 100.
Пилотпишет 192.

Это правильная работа со смещением ?

Спасибо.
omegam
Всем спасибо.
После проб и ошибок смог все сделать как нужно smile.gif
Код

readmem #addr 0x059EA39C D "Game.exe"
log Dec2hex(#addr)
set #hitsAddr #addr + 0xEE
set #manaAddr #addr + 0xEF
set #stamAddr #addr + 0xFC
set #weightAddr #addr + 0x159

readmem #hits #hitsAddr b
readmem #mana #manaAddr b
readmem #stam #stamAddr b
readmem #weight #weightAddr b
log #hits
log #mana
log #stam
log #weight
фонарик
Случайно наткнулся на эту тему. Попытки повторить описанную здесь магию дали кое-какие результаты. Но не понимая природы этих вещей не удаётся продвинутся дальше. Я наколдовал в программе Cheat Engine строчку, которая всегда правильно показывает игровое значение, даже после перезапуска клиента. Читая эту тему, мне закралась мысль что пилот каким-то образом может также считывать это значение? Подскажите пожалуйста, судя по данным скриншота, как это сделать?

Изображение Изображение
фонарик
Мой метод тыка исчерпал возможные комбинации перегрелся и сломался, так и не дав нужный результат sad.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.