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

Проверка "свой-чужой" [Far Cry 3]


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

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

В общем, делаю скрипт на бессмертие в игре "Far Cry 3" v1.0 [DX9]... сам скрипт работает, но проблема в том, что он делает бессмертными всех живых существ в игре. Я несколько раз слышал о таком методе, как проверка "свой-чужой", т.е. проверка, которая делает что-то для кого-то определенного в игре (в данном случае нужно сделать бессмертие для игрока). Но как это сделать - без понятия.

Двое суток обшаривания простот интернета ничем не вразумили, и я уже, как-бы, начинаю сомневаться в правильности своих действий по поиску инструкции, которая должна работать только с игроком... Скрипт прилагаю в спойлере, вдруг кому-то станет интересно взглянуть на сей горе-скрипт. :)


[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem:
mov [esi+10],#1133903872
originalcode:
movss xmm0,[esi+10]
exit:
jmp returnhere
"FC3.dll"+62BA71:
jmp newmem
returnhere:



[DISABLE]
dealloc(newmem)
"FC3.dll"+62BA71:
movss xmm0,[esi+10]

Направьте в нужное русло, пожалуйста. Или убейте уже, чтобы не мучился :)

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

И тебе доброго времени.

Есть как минимум 2 хороших видеоурока для распознавания на "свой-чужой"

1) Keng (

)

2) Coder (

)

Еще есть оффлайн справочник(ссылка) комрада ZOCKIR'а, где детально расписаны условные прыжки для "фильтров"

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

Может быть... Но все те инструкции, которые мне выдал брейкпоинт - я просмотрел (в отладчике - "Найти адреса получающие доступ к этой инструкции"), и все они работают не только с игроком. Двух адресов, после изменения которых изменится здоровье в игре - быть не может, и соответственно - путь поиска начинается с одного адреса... Если б я "болванки" (ложные адреса, которые копируют в себя значение реального адреса) отлаживал - тогда да, а так я сначала проверил, правильный ли адрес нашел, изменил его - проверил, заморозил - проверил, все нормально.

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

Директ Ха 11(32 бита) версия 1.0 сам делал, всю игру на нём прошёл

[ENABLE]

aobscan(address0_aob, 0f2fxxxx72xxxxxxf3xxxxxxxx8bxx6axx6axxxxf3xxxxxxxxff)

alloc(newMem, 2048)

label(returnHere)

label(address0)

registersymbol(address0)

newMem:

mov [ecx+10],(float)999

comiss xmm0,[ecx+10]

jb FC3.RunGame+5C614B

jmp returnHere

address0_aob: //FC3.dll+5CB022

address0:

jmp newMem

nop

returnHere:

[DISABLE]

address0:

comiss xmm0,[ecx+10]

jb FC3.RunGame+5C614B

dealloc(newMem)

unregistersymbol(address0)

можно заметить что фильтра нет он там не нужен

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

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

Баг в руках? :)

Как я делаю:

1. Ищу здоровье методом "Неизвестное значение", далее отсев "Уменьшилось/Увеличилось", остается 3 адреса.

2. Проверяю все 3 адреса, выбираю тот, который отвечает за здоровье персонажа.

3. Далее - ставлю брейкпоинт на запись, вылезает одна инструкция.

4. По этой инструкции перехожу в отладчик, "Найти адреса получающие доступ к этой инструкции", в игре бегаю, прыгаю, стреляю, получаю и наношу урон.

5. Результат: все, кто хоть как-то получил урон в игре (включая животных) - отображаются в окне "Измененные адреса"

6. Ступор.

Может как-то иначе надо делать? :)

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

Ставь открытый бряк (не только на запись, но и на чтение) - там проще будет делать анализ структур игрока и врагов.

Имеется в виду бряк на доступ?

То же самое... бряк на доступ выдал порядка 7 инструкций, и все они работают не только с игроком... Такие дела =\

Не знаю, с чем это связано...

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

Смешное тут кстати то, что читы с этой темы: http://forum.gamehacklab.ru/topic/1830-far-cry-3/ у меня не пашут, не на DX9, не на DX11 версии :D

Пичалька....

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

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

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

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