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

[Помогите!] Адреса И Значения.


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

Есть некий адресс.

Вопрос:Как изменить его значение,если при изменении его байтов игра сразу крашит.

Как в OllyDBG и CE посмотреть асму- хз.

Через классы- тож не варик,не понимаю как там и что.

Игра - FarCry

 

Адреса и вывод их значения :


char tests[MAX_PATH];
char tests2[MAX_PATH];
 
DWORD _Player_Hp = (DWORD)GetModuleHandleA("CrySystem.dll") + 0x000947A4;
DWORD Ofsset_1 = *(DWORD*)(_Player_Hp);
DWORD Ofsset_2 = *(DWORD*)(Ofsset_1 + 0x31C);
DWORD Ofsset_3 = *(DWORD*)(Ofsset_2 + 0x2A0);
DWORD Ofsset_4 = *(DWORD*)(Ofsset_3 + 0xA0);
 
DWORD AmmoPl = (DWORD)GetModuleHandleA("CryEntitySystem.dll") + 0x00036330;
DWORD Ofset_1 = *(DWORD*)(AmmoPl);
DWORD Ofset_2 = *(DWORD*)(Ofset_1 + 0xA4);
DWORD Ofset_3 = *(DWORD*)(Ofset_2 + 0x450);
DWORD Ofset_4 = *(DWORD*)(Ofset_3 + 0xA8);
 
 
sprintf_s(tests, "Bullet=%d", Ofset_4);
NewText(x + 180, y + 59, tests, D3DCOLOR_ARGB(240, 200, 200, 200), LText);
sprintf_s(tests2, "HP=%d", Ofsset_4);
NewText(x + 180, y + 79, tests2, D3DCOLOR_ARGB(240, 200, 200, 200), LText);

Прошу по возможности объяснить все подробно.

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

На нашем форуме есть целая серия видеоуроков по реверсингу игры FarCry от Coder. В них все весьма подробно рассмотрено. Используй поиск по форуму.

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

Как в OllyDBG и CE посмотреть асму- хз.
Через классы- тож не варик,не понимаю как там и что.

Урок кодера по Far Cry смотри:

 

http://www.youtube.com/watch?v=4249xzjqI88

Отличный видео-урок.

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

На нашем форуме есть целая серия видеоуроков по реверсингу игры FarCry от Coder. В них все весьма подробно рассмотрено. Используй поиск по форуму.

Опять же он использует классы.

Мне пока до них,как раком до китая.

Но все-равно,спасибо.

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

После изменения байтов в адресе игра может крашить по двум причинам

1. XLive (его защита целостности кода проверяет память эпизодически)

2. Адрес, который ты нашел, на самом деле является исполняемым кодом, и при перетирании, естественно, логика работы кода меняется на непредсказуемую, что и приводит к вылету из игры

 

Так что ты объясни, что за адрес, как ты на него вышел, и что именно ты хочешь сделать. Попробую помочь.

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

После изменения байтов в адресе игра может крашить по двум причинам

1. XLive (его защита целостности кода проверяет память эпизодически)

2. Адрес, который ты нашел, на самом деле является исполняемым кодом, и при перетирании, естественно, логика работы кода меняется на непредсказуемую, что и приводит к вылету из игры

 

Так что ты объясни, что за адрес, как ты на него вышел, и что именно ты хочешь сделать. Попробую помочь.

Хорошо.

В СЕ я нашел адресс здоровья и попробовал найти к нему поинтер.

как видите,он находится по адресу ("CrySystem.dll") + 0x000947A4 b +3 смещения.

Как только я пишу какие-либо байты в получившийся адресс - игра крашит.

Может-быть я что-то не так сделал?Ибо через инструкции обращавшиеся к адресу ,искать адрес статический мне не хочется.

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

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

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

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

Указатели  правильные,ибо значения патронов и хп показывают верное.

Про имя героя не знал.

Как фильтр делать не знаю.

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

Указатели  правильные,ибо значения патронов и хп показывают верное.

Про имя героя не знал.

Как фильтр делать не знаю.

Если показывается верное значение, то совсем не обязательно, что оно верное, и отвечает именно за то, что ты искал. Есть такое понятие, как "Экранное значение", то есть то значение, которое мы видим на экране, но в действительности - может быть любое значение, любого типа.

Например, игра нам показывает количество здоровья, равное 100, а на самом деле, это может быть: и 200 деленное на 2, и 99.892, и т.д. и т.п., вплоть до мозголомкого шифрования значения.

Попробуй искать методом "изменилось" и "не изменилось". Или поставь бряк на доступ, и посмотри, какие инструкции и адреса всплывают при обращении.

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

Если показывается верное значение, то совсем не обязательно, что оно верное, и отвечает именно за то, что ты искал. Есть такое понятие, как "Экранное значение", то есть то значение, которое мы видим на экране, но в действительности - может быть любое значение, любого типа.

Например, игра нам показывает количество здоровья, равное 100, а на самом деле, это может быть: и 200 деленное на 2, и 99.892, и т.д. и т.п., вплоть до мозголомкого шифрования значения.

Попробуй искать методом "изменилось" и "не изменилось". Или поставь бряк на доступ, и посмотри, какие инструкции и адреса всплывают при обращении.

Так я и искал методом изменилось\неизменилось.

С бряками тож попробую,спасибо.

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

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

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

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