Перейти к содержанию

Поиск адреса указателя не дает результата


nedix

Рекомендуемые сообщения

Ищу в игре GTA SA. Остановился на первом, динамическом адресе. При попытки найти адрес через поиск значений - ничего не выдает.

Пытаюсь через скан указателя, раз десять подряд выдает одно и то же кол-во совпадений (1500), редко уменьшает на 1.

Перерыв похожие запросы, не нашел того что бы помогло.

Единственный совет, или намек, который я нашел: искать последнее обращение к регистру с нужным адресом... А вот где искать не пойму...

 

 

Ссылка на комментарий
Поделиться на другие сайты

Алгоритм примерно такой:

1. Находишь адрес (патроны, жизни, и вообще что угодно).

2. Ставишь на него бряк на чтение, смотришь в инструкции базу и смещение. Смещение запоминаешь

3. Добавляешь в таблицу адрес базы.

4 Идешь в пункт два.

И так до тех пор, пока не доберешься до "зеленого" адреса, или адреса, который не будет меняться.

В результате у тебя получится статичный базовый адрес, и несколько смещений. Это и будет твоя цепочка указателей.

Ссылка на комментарий
Поделиться на другие сайты

@Xiphoне совсем понимаю порядок действий.

1. Нашел адрес.

2. Смотрю что пишет\обращается к нему.

3. Выбираю инструкцию -> Show disassembler.

Далее

Toggle breakpoint или ПКМ по 1 байту Break on Write.

А вот дальше что?

 

В 14.09.2018 в 17:08, Xipho сказал:

И так до тех пор, пока не доберешься до "зеленого" адреса, или адреса, который не будет меняться.

В результате у тебя получится статичный базовый адрес, и несколько смещений. Это и будет твоя цепочка указателей.

 

Это я понимаю.

Вопрос, как найти статический адрес, если варианты: Pointer Scan или *поиск адреса через поиск значений не подходят.

* тут я имею ввиду способ описанный в CE туториале "Step 8: Multilevel pointers".

Изменено пользователем nedix
Ссылка на комментарий
Поделиться на другие сайты

@JustHack

9 минут назад, JustHack сказал:

 

Как я сказал

57 минут назад, nedix сказал:

Pointer Scan или *поиск адреса через поиск значений не подходят.

 

Тогда последний вариант это OllyDbg? 

Я надеялся со способом @Xipho разобраться

Ссылка на комментарий
Поделиться на другие сайты

В 14.09.2018 в 00:28, nedix сказал:

При попытки найти адрес через поиск значений - ничего не выдает.

Пытаюсь через скан указателя, раз десять подряд выдает одно и то же кол-во совпадений (1500), редко уменьшает на 1.

 

Ссылка на комментарий
Поделиться на другие сайты

То есть, ты с самого начала не можешь найти адрес нужного тебе значения, что ли? Если так, то смысла нет искать указатель. Потому что указатель ищется на адрес, а не на значение. Смотри урок внимательно, и вникай.

Я в алгоритме расписал все подробно, не пойму, в чем проблема.

 

 

Ссылка на комментарий
Поделиться на другие сайты

Я прошел все туториалы в CE и решил игровые задачи. Знаю AHK и теперь познакомился с Lua.

Это к слову, чтобы не было недопонимания.

Знаю как находить и находил статический адрес через поинтер скан или через поиск значений.

Адрес я нашел:

1 час назад, nedix сказал:

1. Нашел адрес.

 

Ссылка на комментарий
Поделиться на другие сайты

17 минут назад, nedix сказал:

Я прошел все туториалы в CE и решил игровые задачи. Знаю AHK и теперь познакомился с Lua.

Это к слову, чтобы не было недопонимания.

Знаю как находить и находил статический адрес через поинтер скан или через поиск значений.

Адрес я нашел:

 

 

Это все хорошо, но что на счет знаний об устройстве памяти?

Ссылка на комментарий
Поделиться на другие сайты

Ломаю голову, чувствую что истина где-то рядом, возможно она на самом видном месте, но откуда мне знать.

Я сделал скрипт на Lua с прибавлением значения, при выстреле. В нем пытаюсь найти цепочку указателей на адрес значения.

В таком же скрипте на AHK цепочка указателей нашлась без проблем.

Я пробовал использовать Break and trace, но мне кажется я в нем хожу по кругу. Если бы в интернете были подобные примеры, вопросы бы отпали, но я таких не нашел.

 Две кнопки: выстрел и сброс.

 

Спойлер

getApplication().Title='LuaGame'

ShotCount = 0


form=createForm()
-- form.OnClose = function(sender) closeCE() return caFree end -- закрытие скрипта, использовать при компиляции в .exe
form_centerScreen(form)
control_setSize(form,150,150)
control_setCaption(form,'Game')

button1=createButton(form)
control_setSize(button1,50,50)
control_setPosition(button1,20,80)
control_setCaption(button1,'Shot')

button2=createButton(form)
control_setSize(button2,50,50)
control_setPosition(button2,80,80)
control_setCaption(button2,'Re')

function Button1Click()
ShotCount = (ShotCount + 1)
control_setCaption(label1,ShotCount)
end
setMethodProperty(button1,'OnClick',Button1Click)

function Button2Click()
ShotCount = 0
control_setCaption(label1,ShotCount)
end
setMethodProperty(button2,'OnClick',Button2Click)

label1=createLabel(form)
control_setPosition(label1,70,30)
control_setCaption(label1,ShotCount)


local font1=label1.Font
local font2=button1.Font
local font3=button2.Font
font1.Size = 16
font2.Size = 14
font3.Size = 16

form.ShowInTaskBar = 'stAlways'

 

 

Буду благодарен, если кто-нибудь поможет найти цепочку указателей.

Ссылка на комментарий
Поделиться на другие сайты

@Xiphoя видел, там не говорится о проблеме поиска указателя, какая возникла у меня. Я посмотрел не мало видео\статей уроков, нигде не упоминается такая проблема.

Ссылка на комментарий
Поделиться на другие сайты

@sb0naнет. На данный момент я сделал скрипт, который по нажатию, прибавляет значение. Вот статический адрес этого значения и пытаюсь выяснить.

А так выглядит скрипт:

 

Спойлер

image.jpg

 

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.