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

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

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

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

Правильно ли я делаю. Нахожу многоуровневый указатель.

http://s2.ipicture.r...12/IBSdZd4E.jpg

ставлю на доступ

http://s2.ipicture.r...12/xTc4U36S.jpg

брейкпоинт на конечный адрес

http://s2.ipicture.r...12/xiEY8mSZ.jpg

вылезает окно, в игре изменяю жизнь

вылезают инструкции

http://s2.ipicture.r...12/KFB1v7oX.jpg

выбираю первую инструкцию, нажимаю на отладчик

http://s2.ipicture.r...12/zpU02Z6g.jpg

в отладчике инструменты и автоассемблер

http://s2.ipicture.r...12/w92dhZzy.jpg

в окне автоассемблер выбираю сперва

http://s2.ipicture.r...12/PeH50L31.jpg

а потом выбираю

http://s2.ipicture.r...12/aMR3HSKw.jpg

а потом пишу скрипт

http://s2.ipicture.r...12/62sD6LVg.jpg

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

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

Привет! Всё верно, но это не совсем бессмертие. По факту, происходит такое:

1. Есть инструкция, которая постоянно (несколько раз в секунду) читает адрес здоровья (только твой или ещё чей-то - неизвестно).

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

Да, с виду это будет выглядеть, как бессмертие, но бессмертие - это невозможность нанести тебе урон, а функцию нанесения урона ты не отключал, так что если ты записываешь часто-часто 100 в адрес здоровья, а игра тебя ранит на 101 - ты умрёшь.

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

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

  • 3 недели спустя...

Здравствуйте геймхакеры, думал я с бессмертием для Battlefield 2 и решил сделал такой скрипт.


[ENABLE]
alloc(newmem,2048)
label(returnhere)

newmem:
fld dword ptr [ecx+10]
push ebp
mov ebp,[ecx+18]
mov [[[[[BF2.exe+005F40A8]+DC]+4]+3C]+10],(float)100000
pop ebp
ret
int 3
jmp returnhere

"BF2.exe"+1CD380:
jmp newmem
returnhere:

[DISABLE]
"BF2.exe"+1CD380:
fld dword ptr [ecx+10]
ret
int 3
dealloc(newmem)
//Alt: db D9 41 10 C3 CC

Использовал таблицу, играл, герой не умирает, боль чувствует. Ни одно оружие не могло убить, не знаю сколько играл ни разу не умирал. Вылета никогда не было. Сделал трейнер, работает бессмертие, но когда начинаешь играть заново, бессмертие надо выключить и включить и тогда будет действовать.

Что надо сделать чтобы бессмертие не включать каждый раз.

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

Для этого возможно не надо пользоваться строкой


[[[[[BF2.exe+005F40A8]+DC]+4]+3C]+10]

А расписать запись значения (float)100000 нормальным образом - запись по адресу через ассемблерные инструкции и регистры. А если не знаешь как это делается, то используй заморозку по адресу. В адрес вставь весь указатель [[[[[bF2.exe+005F40A8]+DC]+4]+3C]+10]. При генерации трейнера оба способа подойдут для данной игры.

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

  • 1 месяц спустя...

Здравствуйте геймхакеры, извините опять за вопрос, я решил сделать бессмертие для battlefield 2 v1.5, нашёл указатель, написал скрипт, бессмертие заработало. Сегодня я обнаружил что не только бессмертие действует, но и броня. Бесконечная броня действует и на вражескую технику. Мне кажется надо находить на жизнь и на броню разные адреса и указатели или указатель можно один и тот же.

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

Здравствуйте геймхакеры, извините опять за вопрос, я решил сделать бессмертие для battlefield 2 v1.5, нашёл указатель, написал скрипт, бессмертие заработало. Сегодня я обнаружил что не только бессмертие действует, но и броня. Бесконечная броня действует и на вражескую технику. Мне кажется надо находить на жизнь и на броню разные адреса и указатели или указатель можно один и тот же.

Мне кажется или все твои коменты начинаются именно так и мы дали ответ во всех твоих темах и ты опять спрашиваешь тоже самое)) Разумеется указатели разные для жизни и брони..:)

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

№57, могут быть (и есть) разные указатели на разные адреса (здоровья и брони), но при этом с обеими может работать одна и та же функция. Т.е. ты написал скрипт для здоровья, но инструкция работала и с бронёй, а фильтр (враги-свои) ты сделал только для здоровья.

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

Здравствуйте

В ассемблере можно сделать двойное сравнение?

Скажем по смещение [ecx + 58], 158 а [ecx + 70], 170.

Если первое не истина, но второе истина то не куда не пригаем и на оборот. Одним словом обе сразу отвечали.


cmp [ecx+58],158
je returnhere
cmp [ecx+70],170
je returnhere

выше указанный код, не совсем отвечает к требованию.

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


cmp [ecx+58],158
je next
.....
next:
cmp [ecx+70],170
je returnhere

В этом случае если выполнится первое условие - будет прыжок на метку next, там проверяется второе условие, если оно выполняется - тогда будет второй прыжок. Если же хоть одно из них не выполнится - прыжка не будет. То, что ты и хотел.

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

А ещё можно выделить регистр и в случае успешного условия делать типа inc, а потом сверять содержимое регистра с двойкой. Если двойка - значит оба условия выполнились. :D

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

  • 1 месяц спустя...

Здравствуйте геймхакеры, извините что я вас долго замучал дурацкими вопросами про бессмертие в battlefield 2, оказывается в Запросы трейнеров (сингл. игры). создание, помощь в поиске, консультации, где мне JIeXA дал таблицу там где бессмертие и тд. Спасибо ему за то что он дал мне эту таблицу, теперь я без проблем начну делать трейнеры с бессмертием, но я делал бессмертие, но не так как он. Спасибо вам большое всем за то что вы помогали мне. Простите меня за то что я безграмотный человек :).

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

  • 2 года спустя...

Скрипт - это минипрограмма для автоассемблера Cheat Engine, который пишется, разумеется, на языке ассемблера с некоторыми дополнениями от самой СЕ (Cheat Engine).

Как сделать - найти нужное значение, найти, какая инструкция к нему обращается, написать скрипт с инъекцией кода и нужными действиями. Все это по шагам расписано во многих темах на форуме, и в нескольких видеоуроках, например, моего курса, который можно найти вверху страницы по ссылке "Уроки".

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

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

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

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