Привет ребята, подскажите кто знает, как определить первый адрес процесса игры ?!
Ну откуда он берет эти значения ?! Не понимаю, второй день мучаюсь, и так и так пытаюсь и вычитаю, складываю все что только можно.
Все понимаю, кроме откуда начинается Point...
Первый адрес 13F9C000.
13F9C000 + 01606320 и т.д...
[[["Wow.exe (он же динамический 13F9C000)"+ 01606320] 230] 20] = x cord of player.
[offtop]http://cs-soft.my1.ru/musor/memoryrw_v1.0.7z MemoryRW v1.0[/offtop]
Id Proc 3520 (hex 00000DC0) - может от айди что то зависит.
Причем первый адрес игры всегда равен 9460301 (4 Bytes)
------------ Дoбавленo в 13.19:
((
Этот топик читают: Гость
Ответов: 321
Рейтинг: 10
|
|||
карма: 1 |
|
Ответов: 1841
Рейтинг: 369
|
|||
Часть наработок из старых приложений.
Код получения того самого базового адреса модуля или образа целевого приложения. code_37317.txt Далее, базовый адрес прибавляем к смещению 01606320 (это именно смещение) и читаем int или int64 из памяти по адресу который мы получили. То что мы прочитали, и должно быть 38333D10 (динамический указатель). Далее, прибавляем к указателю 38333D10 смещение 230 и читаем следующий указатель (38335238) по получившемуся адресу. И так далее. ------------ Дoбавленo в 16.48: Кроме последнего вычисления указателя (38335238+20). На последнем этапе указатель вычисляется только сложением/вычитанием смещения из указателя без последующего чтения по нему адреса (там уже игровое значение будет). |
|||
карма: 1 |
| ||
файлы: 1 | code_37317.txt [837B] [169] | ||
Голосовали: | Master4eG, flint2 |
Ответов: 321
Рейтинг: 10
|
|||
CriDos, опять Вы, в прошлый раз объясняли принцип работы всего этого, спасибо Вам громадное за это.
В тот раз был определенный адрес, с которого все начинается, вот со старой темы, тоже кстати X координата игрока Версия игры обновилась, размер игры с 16 Гб дорос до 28 Гб, и все оффсеты поменялись, вот хочу обновить свое творение под новый клиент игры. Но в отличии от старого ( [[[CD87A8] + 0x34] + 0x24] + 0x798 ) новый имеет первое значение [Wow.exe + 01606320], что и озадачило меня Я не понимаю как использовать code_37317.txt, я не умею вставлять коды delphi в схему. Ума хватает только рисовать в Hiasm, смотрел на различных форумах как в delphi по handle окна находят ProcId, base оффсеты, а как это вставить в Hiasm не понимаю :\ Иногда обидно, что вроде делаю хорошие программки с кучей логики, а как это устроено в кодовом виде даже не представляю. Читаю справки по InlineCode, попробую разобраться хоть поверхностно как код вставлять. ... Как все сложно... По сути это нужно знать язык делфи. Синтаксис понимать. |
|||
карма: 1 |
|
Ответов: 1841
Рейтинг: 369
|
|||
Эх, не любитель я паскалевского синтаксиса со всякими KOL'aми да _hi_* мотодами.
Вот накидал IC получения всех модулей необходимого процесса и их базового адреса:
Проблемы могут быть только в преобразовании указателей в целое число (Integer). Ну и остановка перебора модулей отсутствует, тут уж сам как нибудь сделаешь, если потребуется. |
|||
карма: 1 |
|
Ответов: 321
Рейтинг: 10
|
|||
Спасибо большое, и как всегда закон подлости, не хочет мой процесс находить
Запустил старую версию игры, ее прекрасно нашло. Запустил новый клиент но в x32, и опять же заработало... То есть как я понимаю x64 не будет искать ?! [offtop]Интересно, что первые адреса, что в старом, что в новом клиенте под х32 = 400000 (hex) Еще интересно, что как то показывает несколько процессов которые одновременно запущенны начинаются с 400000, включая Hiasm и скомпилированный проект. Значит это не личное пространство процесса, а только лишь условный регион в котором начинается процесс?!хм Адрес с которого начинается мой злополучный процесс отличается больно уж от 400000 - 13FAC0000[/offtop] |
|||
карма: 1 |
|
Ответов: 321
Рейтинг: 10
|
|||
Up форумчане помогите...
Кто знает ?! |
|||
карма: 1 |
|
Ответов: 1841
Рейтинг: 369
|
|||
Master4eG писал(а): То есть как я понимаю x64 не будет искать ?!да, из 32 битного процесса не будет искать Master4eG писал(а): Значит это не личное пространство процесса, а только лишь условный регион в котором начинается процесс?!хмhttp://datadump.ru/process-address-space - Адресное пространство процесса в Windows Master4eG писал(а): Адрес с которого начинается мой злополучный процесс отличается больно уж от 400000 - 13FAC0000Этот адрес явно уходит за рамки 32 битного адресного пространства, так что вывод очевиден |
|||
карма: 1 |
|
7