Гость Merano Опубликовано 23 февраля, 2013 Поделиться Опубликовано 23 февраля, 2013 Доброго времени суток.В общем, делаю скрипт на бессмертие в игре "Far Cry 3" v1.0 [DX9]... сам скрипт работает, но проблема в том, что он делает бессмертными всех живых существ в игре. Я несколько раз слышал о таком методе, как проверка "свой-чужой", т.е. проверка, которая делает что-то для кого-то определенного в игре (в данном случае нужно сделать бессмертие для игрока). Но как это сделать - без понятия.Двое суток обшаривания простот интернета ничем не вразумили, и я уже, как-бы, начинаю сомневаться в правильности своих действий по поиску инструкции, которая должна работать только с игроком... Скрипт прилагаю в спойлере, вдруг кому-то станет интересно взглянуть на сей горе-скрипт. [ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov [esi+10],#1133903872originalcode:movss xmm0,[esi+10]exit:jmp returnhere"FC3.dll"+62BA71:jmp newmemreturnhere:[DISABLE]dealloc(newmem)"FC3.dll"+62BA71:movss xmm0,[esi+10]Направьте в нужное русло, пожалуйста. Или убейте уже, чтобы не мучился Ссылка на комментарий Поделиться на другие сайты Поделиться
Laziz Опубликовано 23 февраля, 2013 Поделиться Опубликовано 23 февраля, 2013 Тут решениеhttp://forum.gamehacklab.ru/topic/959-%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0%D0%B9%D1%82%D0%B8-%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80-%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%B0-id-players/page__hl__%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%B0__fromsearch__1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 23 февраля, 2013 Поделиться Опубликовано 23 февраля, 2013 Laziz, спасибо большое Ссылка на комментарий Поделиться на другие сайты Поделиться
Bromvol Опубликовано 23 февраля, 2013 Поделиться Опубликовано 23 февраля, 2013 И тебе доброго времени.Есть как минимум 2 хороших видеоурока для распознавания на "свой-чужой"1) Keng ( )2) Coder ( )Еще есть оффлайн справочник(ссылка) комрада ZOCKIR'а, где детально расписаны условные прыжки для "фильтров" Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 23 февраля, 2013 Поделиться Опубликовано 23 февраля, 2013 Bromvol, отлично, большое спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-mx Опубликовано 23 февраля, 2013 Поделиться Опубликовано 23 февраля, 2013 В фар крае бессмертие делается и без фильтра, наверное ты не ту инструкцию используешь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 24 февраля, 2013 Поделиться Опубликовано 24 февраля, 2013 Может быть... Но все те инструкции, которые мне выдал брейкпоинт - я просмотрел (в отладчике - "Найти адреса получающие доступ к этой инструкции"), и все они работают не только с игроком. Двух адресов, после изменения которых изменится здоровье в игре - быть не может, и соответственно - путь поиска начинается с одного адреса... Если б я "болванки" (ложные адреса, которые копируют в себя значение реального адреса) отлаживал - тогда да, а так я сначала проверил, правильный ли адрес нашел, изменил его - проверил, заморозил - проверил, все нормально. Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 24 февраля, 2013 Поделиться Опубликовано 24 февраля, 2013 Директ Ха 11(32 бита) версия 1.0 сам делал, всю игру на нём прошёл[ENABLE]aobscan(address0_aob, 0f2fxxxx72xxxxxxf3xxxxxxxx8bxx6axx6axxxxf3xxxxxxxxff)alloc(newMem, 2048)label(returnHere)label(address0)registersymbol(address0)newMem:mov [ecx+10],(float)999comiss xmm0,[ecx+10]jb FC3.RunGame+5C614Bjmp returnHereaddress0_aob: //FC3.dll+5CB022address0:jmp newMemnopreturnHere:[DISABLE]address0:comiss xmm0,[ecx+10]jb FC3.RunGame+5C614Bdealloc(newMem)unregistersymbol(address0)можно заметить что фильтра нет он там не нужен Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 24 февраля, 2013 Поделиться Опубликовано 24 февраля, 2013 Я без понятия тогда... Но у меня почему-то всегда находится именно тот адрес, который ссылается на инструкцию, которая в свою очередь работает не только с игроком.Баг в руках? Как я делаю:1. Ищу здоровье методом "Неизвестное значение", далее отсев "Уменьшилось/Увеличилось", остается 3 адреса.2. Проверяю все 3 адреса, выбираю тот, который отвечает за здоровье персонажа.3. Далее - ставлю брейкпоинт на запись, вылезает одна инструкция.4. По этой инструкции перехожу в отладчик, "Найти адреса получающие доступ к этой инструкции", в игре бегаю, прыгаю, стреляю, получаю и наношу урон.5. Результат: все, кто хоть как-то получил урон в игре (включая животных) - отображаются в окне "Измененные адреса"6. Ступор.Может как-то иначе надо делать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 24 февраля, 2013 Поделиться Опубликовано 24 февраля, 2013 Ставь открытый бряк (не только на запись, но и на чтение) - там проще будет делать анализ структур игрока и врагов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 24 февраля, 2013 Поделиться Опубликовано 24 февраля, 2013 Ставь открытый бряк (не только на запись, но и на чтение) - там проще будет делать анализ структур игрока и врагов.Имеется в виду бряк на доступ?То же самое... бряк на доступ выдал порядка 7 инструкций, и все они работают не только с игроком... Такие дела =\Не знаю, с чем это связано... Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 28 февраля, 2013 Поделиться Опубликовано 28 февраля, 2013 Смешное тут кстати то, что читы с этой темы: http://forum.gamehacklab.ru/topic/1830-far-cry-3/ у меня не пашут, не на DX9, не на DX11 версии Пичалька.... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения