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

Указательный вопрос [CE]


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

Здравствуйте, геймхакеры!

 

Реверсю deadrising 3... Нашел значение патронов. Оно странное... Остановил на доступ - при выстреле трассирую огромное кол-во адресов. 

На запись - два адреса. Убиваю один... Мимо! Убиваю второй... Мимо! Убиваю сразу оба... Готов! Странно, правда? 

Решил изменять значение по указателю. Ищу указатели через встроенный поисковик в СЕ. Нашел. Много. Отсеиваю. На выходе получил около 30 рабочих указателей.

Пилю один в таблицу, ставлю игру в оконку и смотрю как работает указатель. Работает, но странно... Вот в чем странности:

-- Указатель показывает правильное значение только в определенных группах патронов (весь огнестрел вроде винтовок пистолетов и автоматов) но на дробовиках и гранатометах - мусор показывает

-- Само значение указателя скачет "как белка в колесе".

Допустим, одно оружие. Стреляю. (исходное кол-во патронов - 500. накрутил) 500...499... -245... 1..55..22.. 498...  Это я выстрелил два раза, т.е. должно было быть 500, 499,498.

 

з.ы. кое что придумал для сишки. Что-то вроде эмулятора АА. К примеру, прибавление значения по желанию пользователя.

Реализация (в моем нубском видении))):

1) Чтение памяти по указателю

2) Получение адреса (конечного) по указателю

3) Получение значения указателя (т.е. указывает на адрес, значение которого, к примеру, 500. это значение получаем и записываем в программу)

4) Прибавление к этому значению наше (к примеру, было 30 мы прибавили 170 стало 200)

5) Запись нового значения по конечному адресу указателя.

Как вам задумка?)) Еще для красоты, можно прикрутить textBox если на WinForm писать. В этот textBox пользователь вводит значение (которое добавить) или уже конечное, жмет "добавить" и вуоля!

Как это реализовать?)

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

Привет!

 

По поводу указателей - ощущение такое, будто игра любит скрипты и движок в ней соответствующий. Копать в этом случае лучше разбирая код, нежели ища указатели.

 

По второй идее:

0. У тебя есть окно, два [editbox]-а, [кнопка].

1. При запуске ищешь идентификатор нужного тебе процесса (pID). [ToolHelp API], [FindWindow], [OpenProcess].

2. Если нажали на кнопку, то:

3. Если в первом editbox-е есть адрес и во втором есть целое число, то:

4. Ставим своей программе права на запись в нужный адрес ([VirtualProtectEx]).

5. Делаем [ReadProcessMemory] введенного адреса.

6. Полученные байты конвертируем в int32 (или нужный нам тип).

7. Прибавляем к полученному значению число из второго editbox-а.

8. Делаем [WriteProcessMemory] в тот же адрес, записывая новое значение.

9. Ставим старую защиту на адрес через ту же VirtualProtectEx.

10. Готово!

 

PS: Как читать указатели, можно найти у меня в видеоуроках или тут же, на форуме. Алгоритм простой.

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

3. Если в первом editbox-е есть адрес и во втором есть целое число, то:

 

Адрес будет хранится локально, в самой программе. Пользователь введет только значение.Полученные байты конвертируем в int32 (или нужный нам тип).

 

 

Полученные байты конвертируем в int32 (или нужный нам тип).

Тут скорее нужно получить адрес (!) конечный по указателю. И его значение.

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

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

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

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