Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ Readmem - базовый адрес

Автор: NovyjPilot 25.12.2018, 3:14

Доброго времени суток!

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

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

Есть ли в пилоте встроенная возможность получить этот базовый адрес для game.exe который является исходной точкой?

Автор: DarkMaster 25.12.2018, 11:38

Цитата
Добавил модульную адресацию в командах работы с памятью.
'readmem <variable> <address> <type> <size> [modulename]'
'writemem <variable> <address> <type> [ModuleName] [result]'


Автор: NovyjPilot 25.12.2018, 14:07

Спасибо большое всё работает! Извините что сразу не заметил просто на вики в Синт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 4.1.2020, 14:23

Здравствуйте. Можете ли вы привести пример с [modulename]. Я тоже пытаюсь получить базовый адрес, но безуспешно. Спасибо.

Автор: DarkMaster 4.1.2020, 19:49

Вам нужно именно получить базовый адрес или считать со смещеним от базового?
Чтобы получить именно базовый адрес как-то так:

Код

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

Считать со смещением:
local result = readmem (address, type, modulename)
типа:
local result = readmem (0x00001234, "d", "my.dll")

Автор: omegam 10.6.2020, 20:54

Доброго времени суток.
Уже пару дней страдаю пытаясь считать адресс. Чит энджин выдает такой поинтер:
Game.exe+59EA39C со смещением Е8
Я написла такой код:

Код

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


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

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

Спасибо.

Автор: omegam 11.6.2020, 14:15

Всем спасибо.
После проб и ошибок смог все сделать как нужно 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

Автор: фонарик 14.6.2020, 22:58

Случайно наткнулся на эту тему. Попытки повторить описанную здесь магию дали кое-какие результаты. Но не понимая природы этих вещей не удаётся продвинутся дальше. Я наколдовал в программе Cheat Engine строчку, которая всегда правильно показывает игровое значение, даже после перезапуска клиента. Читая эту тему, мне закралась мысль что пилот каким-то образом может также считывать это значение? Подскажите пожалуйста, судя по данным скриншота, как это сделать?

Изображение Изображение

Автор: фонарик 16.6.2020, 17:25

Мой метод тыка исчерпал возможные комбинации перегрелся и сломался, так и не дав нужный результат sad.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)