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

Just Cause, здоровье, патроны...


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

Игра: Just Cause

post-3-1295708117,65_thumb.gif

Спрос на трейнер: средне актуален, т.к. игра, возможно, и популярна при этом нет универсального трейнера.

Дата выхода: сентябрь 2006 г.

Мин. системные требования: CPU 1,4 MHZ, 512 MB, 64 MB VIDEO

Дополнительная информация: игра похоже на всем известную GTA3 и выше.

-Таблица CE (для версии RUS).

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

Реализованы чит-коды:

 

 

1. Чит-код на здоровье героя (автор MasterGH)

Скрытый текст

Инструменты: CE, MHS.

Здоровье представляет собой полоску. Значение, которой изменяется плавно, значит, начнём искать с 4 байтов с точкой или (float).

post-3-1295708122,72_thumb.gif

рис. 1

Ищу в MHS адрес типа float подставляя героя под удар правилом «уменьшилось» совместно с правилом интервала от 0,0 до 10000000,0

Нахожу три адреса и, проверяя их заморозкой, нахожу, что один из них рабочий 05E41E64 = 1850 здоровья. В окне найденных адресов рабочий адрес не зелёный, значит динамический.

Копируем в CE все адреса из MHS (не рабочие тоже могут пригодится).

Ставим брейкпоинт на доступ на рабочий адрес.

Идём в игру и наблюдаем такую картину.

post-3-1295708130,88_thumb.gif

рис.2

Поверяем, что самый часто обращаемый адрес является типом А, т.е. работает только с адресом здоровья героя.

post-3-1295708137,73_thumb.gif

рис.3

Поскольку на рис 3 постоянно находится один адрес при стрельбе во врагов и при их стрельбе в моего героя, то скорее всего мы имеем дело с инструкцией типа А.

Совет.

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

Поскольку мне некогда заниматься расструктуризацией объекта и его оружия, копаться в дизассемблере и т.п., то я пойду по простому пути. Вытащу указатель, который пригодится позже на объект из

 

0046508a - d9 40 4c - fld dword ptr [eax+4c], (регистр EAX= 05E41E18 , который был при бряке) 

Листинг 1

и оформлю чит-код на здоровье. На рис.2 жму на «Скрипт». Далее «Чит-код->Указатель»

Убираем лишний мусор и получаем.

 

[ENABLE]
globalalloc(newmem,2048)
label(_originalcode)
label(_returnhere)

label(_buf1)
registersymbol(_buf1)
label(_cheat1)
registersymbol(_cheat1)

label(_pId)
registersymbol(_pId)

newmem:
mov [_pId],ecx
_cheat1:
jmp short _originalcode
push ebx
mov ebx,[eax+48]
mov [eax+4c],ebx
pop ebx
_originalcode:
fld dword ptr [eax+4c]
fdiv dword ptr [ecx+48]
jmp _returnhere
_buf1:
db 90 90
_pId:
dd 0

JustCause.exe+6508A:>45E08B4DE08B118955DC8B45DC8B4DDCYYxxxxxxxx48D95DD8D905889EA100
jmp newmem
nop
_returnhere:

[DISABLE]
{JustCause.exe+6508A:>45E08B4DE08B118955DC8B45DC8B4DDCYYxxxxxxxx90D95DD8D905889EA100
fld dword ptr [eax+4c]
fdiv dword ptr [ecx+48]
unregistersymbol(_pId)
uregistersymbol(_cheat1)
dealloc(newmem) }

Листинг 2

Связываем этот скрипт, переименовываем его на {+A}(здоровье) и активируем его.

На скрипте кликаем правкой кнопкой мыши и в появившемся меню опции нажимаем «Новый». В новом окне скрипта опять взываем, меню и выбираем «Дополнительный». Генерируется скрипт, исправляем его немного.

 

[ENABLE]
_buf1:
readmem(_cheat1,2)

_cheat1:
db 90 90

[DISABLE]
_cheat1:
readmem(_buf1,2)

Листинг3

Добавляем этот скрипт, переименовываем на Здоровье и активируем его. Должно получится так

post-3-1295708143,07_thumb.gif

рис.4

Теперь в игре игрок с максимальным здоровьем и бессмертен, враги при этом смертны.

 

2. Чит-код на бесконечные патроны (автор MasterGH)

Скрытый текст

Инструменты: CE.

Мне пришлось перезапустить игру, поэтому указатель на объект изменился. Он будет равен теперь

[pId]=05E41F10

post-3-1295708152,44_thumb.gif

рис.1

Возьмём какое-нибудь оружие без бесконечных патронов, а то, которое ниже на рисунке брать нельзя.

Примечание.

Какая-то странная игра, у некоторого оружия патроны бесконечны ))

post-3-1295708157,67_thumb.gif

рис.2

Я взял пистолет с глушителем.

post-3-1295708165,18.gif

рис.3

Нашёл два адреса целое 4 байта. Один экранный и другой рабочий, оба динамические (рис 1).

Ставим бряк на доступ на рабочий адрес. Появляется сразу одна инструкция и определим сразу её тип.

post-3-1295708170,51_thumb.gif

рис.4

Примечание.

Если мы стрельнем или перезарядимся появятся больше инструкций, но они все типа не А. Также лучше внедрять в инструкцию на рис 4, чтобы изменения патронов видно было сразу.

Примечание.

Начало структуры определено неверно, не обращайте внимания. Т.к. eax сам себя затерает. Но если мы знаем адрес, который проскакивает на инструкции, то мы можем определить регистры, что я и сделал.

После того как определили начало структуры патронов, теперь либо через сканер памяти, либо визуально найдём указатель на объект героя в структуре патронов и по нему я буду делать фильтр вычитания патронов.

post-3-1295708175,29_thumb.gif

рис.5

По этим данным делаем чит-код.

На рис. 4 выделяем инструкцию и нажимаем на кнопку «скрипт». Пишем скрипт с фильтром.

Примечание.

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

 

[ENABLE]
alloc(newmem1,2048)
label(_originalcode)
label(_returnhere)

newmem1:
push eax
mov eax,[eax+78]
cmp eax,[_pId]
pop eax
jne short _originalcode
mov [eax+00000184],#99
_originalcode:
mov eax,[eax+00000184]
jmp _returnhere

JustCause.exe+21FD11:>00008B55FC038284010000EB098B45F8YYxxxxxxxx008BE55DC3CCCCCCCCCC
jmp newmem1
nop
_returnhere:

[DISABLE]
JustCause.exe+21FD11:>00008B55FC038284010000EB098B45F8YYxxxxxxxx908BE55DC3CCCCCCCCCC
mov eax,[eax+00000184]
dealloc(newmem)

Листинг1

Примечание.

Надо помнить, что активирующий скрипт включается в первую очередь.

post-3-1295708179,69_thumb.gif

рис.6

post-3-1295708183,62_thumb.gif

рис.7

Результатом активации двух чит-кодов является рисунок 7.

Наш герой бессмертен и у него бесконечные патроны.

 

3. Делаем машину бессмертной(автор MasterGH)

Скрытый текст

Машина бессмертная, но пока попадает под влияние выстрелов врагов в результате чего при пробитых колёсах, покорёженной трансмиссии машина передвигается не так хорошо как хотелось бы. На вертолёте опробовать чит не получилось.

Ниже описан метод нахождения указателя на объект управления машиной внутри структуры объекта машины, так же показано на что правильно ставить бряк.

Инструменты: CE.

Запускаем игру, активируем активирующий скрипт.

Смотрим в CE чему равна метка pID которая указывает на объект нашего героя.

post-3-1295708189,52_thumb.png

рис.1

post-3-1295708194,15_thumb.png

рис.2

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

Итак, крадём машину.

Ставим бряк на запись на здоровье героя, наносим себе урон

Примечание

Бряк на запись ставим для того чтобы было меньше инструкций и мороки найти инструкцию типа С, по которой мы найдём адрес объекта машины выстрелив по ней.

Получаем инструкцию,

post-3-1295708197,89_thumb.png

рис.3

наверняка, она типа C - она работает с объектами, описанными более чем одним классом:: классом игрока и классом машины… Сейчас мы это проверим. Делаем что показано на рисунке выше и стрелам в машину, тут же появился адрес здоровья машины – ага, как предполагали так и получилось. Тип инструкции действительно С.

post-3-1295708202,69_thumb.png

рис. 4

Итак, перед нами две структуры здоровья: игрока и машины.

post-3-1295708208,78_thumb.png

рис. 5

Примечание.

Берём листок бумаги и ручку. Рисуем рисунок выше и выделяем байты размером с величину страницы памяти.

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

Я начал с этих поисков.

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

2. Поиск. Заходим в машину и ищем в памяти адрес объекта машины, затем выходим и отсеиваем ноль.

В итоге нашли по единственному адресу.

post-3-1295708218,72_thumb.png

рис.6

Эти два поиска нам не особо помогли, т.к. указатель на машину не находится в структуре игрока и также указатель на игрока не находится в структуре машины. Отсюда следует какой вывод? )

Вывод такой, что должен быть замешан какой-то другой объект типа «управления машиной». Если подумать, то объект машины должен содержать указатель на объект управления машиной: это либо указатель на объект управления пользователем, либо указатель на объект управления ботом. А что это значит?

А это значит, что

1. Мы ищем указатель на объект управления машиной в объекте машины.

2. Ищем инструкцию типа А, которая чаще всех работает с указателем на объект управления машины и в неё внедряем чит-код с фильтром: если машиной управляет наш герой, то прописать машине макс. количество «здоровья».

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

К сожалению, я пришлось поменять машину, рисунок будет такой.

post-3-1295708223,89_thumb.png

рис.7

Ставим бряк на рисунке выше. Получаем.

post-3-1295708228,82_thumb.png

рис.8

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

 

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


newmem:
mov [edx+48],47C35000
mov [edx+4c],47C35000
mov ecx,[edx+000000b4]
jmp _returnhere

JustCause.exe+4569F9:>4DF883B9B400000000741E6A288B55F8YYxxxxxxxx00E8FC5DC3FF0FB6C085
jmp newmem
nop
_returnhere:

[DISABLE]
JustCause.exe+4569F9:>4DF883B9B400000000741E6A288B55F8YYxxxxxxxx90E8FC5DC3FF0FB6C085
mov ecx,[edx+000000b4]
dealloc(newmem)

Но данный скрипт не безупречен, машина не разрушается окончательно, но при этом происходит следующее: колёса простреливают, бампер и двери отрываются пулями взрывами =) Так что надо дорабатывать.

 

4. Чит-код на гранаты (автор MasterGH)

Скрытый текст

Данный скрипт вместо описанного ранее скрипта для бесконечных патронов, даёт как патроны так и 99 гранат и возможность бросать пять гранат подряд. Интресно что в один момент времени не может быть более пяти гранат, т.е. если враг бросил одну гранату, то вы сможете бросить только 4-ре. Данное ограничение обусловлено игрой. Для пяти гранат существует структура с пятью 4-х байтовыми адресами. Это уструктура читается из многих мест. Т.е. если создать свою структуру с 100-ней гранат и записать её по другому адресу, то придётся кучу времени потратить на то чтобы код игры работал с новой структурой. Поэтому проще оставить возможно бросать одновременно пять гранат=)


[ENABLE]
alloc(newmem1,2048)
label(_originalcode)
label(_returnhere)
label(_x1)
newmem1:
push eax
mov eax,[eax+78]
cmp eax,[_pId]
jne short _x1
mov [eax+0000090],#99 // гранаты
mov [eax+0000918],0 // таймер гранат
pop eax
mov [eax+00000184],#99 //патроны
jmp short _originalcode
_x1:
pop eax
_originalcode:
mov eax,[eax+00000184]
jmp _returnhere
JustCause.exe+21FD11:>00008B55FC038284010000EB098B45F8YYxxxxxxxx008BE55DC3CCCCCCCCCC
jmp newmem1
nop
_returnhere:
[DISABLE]
JustCause.exe+21FD11:>00008B55FC038284010000EB098B45F8YYxxxxxxxx908BE55DC3CCCCCCCCCC
mov eax,[eax+00000184]
dealloc(newmem)

 

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

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

У меня вот тут вопросик наклюнулся - как можно сделать, чтоб машина, в которую я сажусь, была неубиваема? Точнее вопрос - не как, а сложно ли?)) Потому что я даже чисто теоритически не могу представить как это сделать. То есть, как одну машину сделать неубиваемой понятно - бьешь, и отсеиваешь ее здоровье. А вот как сделать чтоб это работало только на те машины в которых я сижу?

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

Kvazimado, слушай... трейнер-то у тебя заработал? .... я же его переделал.

Как сделать машины не убиваемыми в которых сидит твой герой?

Это сделать скорее всего не сложно ^_^ Только я так устал что сегодня уже не могу этим заниматся, а сегодня вечером и завтра и послезавтра я занят сутками.

Теоретически можешь попробовать


  • [*:v35e6sz5]Найди адреса - изменяющиеся значения 4 байта целое, в случае когда ты садишься в машину и вышел из неё. Допустим ты нашёл адрес1
    [*:v35e6sz5]Найди адрес2 "здоровья" машины
    [*:v35e6sz5]Найди связи между адресами
    [*:v35e6sz5]Напиши чит-код

ps Я с форума ухожу через 20 минут... когда появлюсь не знаю. Либо сегодня, либо завтра, либо вообще во вторник.

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

Прости, я просто винду переставлял - без звука, даже с тренером играть не тянет))

А насчет машины подумаемс, думаю осилю))

Такс, с тренером опять что то не так. Мне уже кажется, что моя версия игры какая то не такая!

Запустил тренер, потом игру - во время запуска игры, вылезает ошибко - TCheatSaerch нашел код модифицированый, поэтому функции работать не будут (ну как то так). Ладно, жизня не работает, а при использовании патронов, игра вылетает((

ЗЫ Скачал таблицу, попробую посмотреть, может что то и выгорит. Проблема только в одном - обе версии ЧитЭнжина не хотят ловить процесс игры, пишут какую то ошибку. Чуть позже вывешу скрины.

Вот так реагирует ЧитЭнжин рус на запуск - http://pic.ipicture.ru/uploads/091213/1 ... QnUM6t.jpg

Хм...другие ошибки ушли...даже странно

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

Какая ошибка конкретно...

"...код модифицированный, множество соответствий..."

или

"...код модифицированный, соответствий не найдено..." ? Это весьма важно.

Русскую cheat engine надо вставить в директорию оригинальной английской версии. Английскую версию лучше оставить (например переименовав её).

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

Знаешь, чтобы тебя не мучить вопросами... сброська мне твой JustCause.exe (ссылкой через личку, поскольку тут на форуме нельзя постить nodvd), я его быстренько проверю. Взамен тебе скину мой и он будет точно работать.

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

Спасибо Мастер. Тренер пашет, игра помоему меньше лагает, не знаю почему. В общем все работает. Спасибо еще раз.

ЗЫ ЛСы посылать не могу, так как гость. Но я Xipho попросил тебе переслать

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

Kvazimado, если у тебя будет время и желание сделай следующее и отпишись о работе трейнера с твоим первоначальным JustCause.exe.

Сначала запусти игру, затем начни играть (загрузив локацию игры), а только после этого сверни игру и запусти трейнер, подожди на всякий случай 10 секунд, активируй здоровье (crtl+1)...

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

Проблема

JustCause.exe (с защитой от копирования) предположительно поочередно распаковывает модифицированные секции кода, перед тем как к ним будет обращение. Я в этом не уверен, но догадываюсь.

Обдумываю решение проблемы

Если описание проблемы совпадает с истинной, то я изменю двиг трейнера следующим образом. При первой активации по горячим клавишам любого чит-кода сначала будет активация всех активирующих скриптов. Надо было сразу так делать, что-то я не додумался раньше. dry.gif У меня же активирующие скрипты активируются сразу после нахождения дескриптора процесса игры.

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

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

ЗЫ Во вторник также займусь рассмотрением вопроса о том, как сделать неубиваемую машину или вертолет (иногда бывает, что сам под себя ракету пускаешь))

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

Мастер, в общем сделал как ты сказал - ошибки нет вообще, тренер работает. Различия, которые я смог заметить, между хакнутым экзе и нормальным:

1) во-первых, когда запускаешь тренер, игра начинает подлагивать, есть даже мысль что она щас просто зависнит, особенно если рядом что то взрывается))

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

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

ЗЫ. Время было только на подготовку к сессии(( Нашел только жизнь машины, той что у меня на тот момент была, точнее вертолет. Постараюсь на недели замутить окончательно то, что намечал и узнать как же связать ГГ и тачку, в которой он сидит.

ЗЗЫ. http://i002.radikal.ru/0912/38/d802a9d853eb.jpg - вот я фигею с винды! это он, кстати, ругается на то, что ты мне прислал! После того, как я тренер запускал с правым экзе! Да что за кошмар то такой?

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

1. У меня тоже такое было

2. Про этот случай я могу только гадать.

3. Так же как и во втором пункте - без понятия в чём причина.

ЗЫ. Если создашь чит-код, то можешь написать статью в этой теме.

ЗЗЫ. Трейнер ругается, т.к. требуется соблюдать правило - один запуск трейнера, на один запуск игры. В будущем, может быть, исправлю эту проблему.

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

  • 3 месяца спустя...

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

PS как запустить игру в окне?!

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

Да что непонятного - сделать тачку невзрываемой. Всё делал по инструкции. Нашёл в структуре машины указатель на структуру управления машиной (по смещению B4h). Убедился, что в ней есть указатель на машину. Сел в машину, поставил бряк. Появилось 15 адресов. Запомнил количество обращений к каждой инструкции, вышел из машины. В общем нашёл 9 инструкций, срабатывающих только когда я в машину сижу. Среди них было две инструкции: cmp и mov с наибольшим числом срабатываний, всё как в туторе. Внедрил в mov скрипт на бессмертие машины, скопипастил его, только проверочные байты написал в виде строки aobscan. Собственно всё, захожу в игру и получаю вылет при выходе из машины... тачка то вроде как становится бессмертной, да только выйти из неё нельзя...

скрипт бессмертия машины

[ENABLE]

aobscan(_faddress,8bxxxxxxxxxxe8xxxxxxxx0fxxxx85xx74xxc7xxxxxxxxxxxx8bxxxxxx8bxxxx)

alloc(newmem2,2048)

label(_returnhere)

newmem2:

mov [edx+48],47C35000

mov [edx+4c],47C35000

mov ecx,[edx+000000b4]

jmp _returnhere

_faddress: // 00856859 = JustCause.exe+456859

jmp newmem2

nop

_returnhere:

[DISABLE]

aobscan(_faddress,90e8xxxxxxxx0fxxxx85xx74xxc7xxxxxxxxxxxx8bxxxxxx8bxxxx)

_faddress-5:

mov ecx,[edx+000000b4]

dealloc(newmem2)

//Alt: db 8B 8A B4 00 00 00

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

На всякий случай вот рабочий скрипт с поправленными проверочными байтами:

рабочий скрипт бессмертия машины

[ENABLE]

aobscan(_faddress,8bxxxxxxxxxxe8xxxxxxxx0fxxxx85xx74xxc7xxxxxxxxxxxx8bxxxxxx8bxxxx81xxxx)

alloc(_newmem,2048)

label(_returnhere)

label(_pCar)

registersymbol(_pCar)

_newmem:

mov [_pCar],edx

push ecx

mov ecx,[edx+48]

mov [edx+4c],ecx

pop ecx

mov ecx,[edx+000000b4]

jmp _returnhere

_pCar:

dd 0

_faddress: // 00856859 = JustCause.exe+456859

jmp _newmem

nop

_returnhere:

[DISABLE]

aobscan(_faddress,90e8xxxxxxxx0fxxxx85xx74xxc7xxxxxxxxxxxx8bxxxxxx8bxxxx81xxxx)

_faddress-5:

mov ecx,[edx+000000b4]

dealloc(_newmem)

unregistersymbol(_pCar)

//Alt: db 8B 8A B4 00 00 00

Скрипт массового убийства

[ENABLE]

aobscan(_faddress,d9xxxxd8xxxxxxxxxxdfxxf6xxxx7axxc7xxxxxxxxxxxxebxxc7xxxxxxxxxxxx0fxxxxxx)

alloc(_newmem,2048)

label(_returnhere)

label(_originalcode)

_newmem:

cmp eax,[_pId]

je short _originalcode

mov [eax+000004C],(float)0

_originalcode:

fld dword ptr [eax+4c]

fcomp dword ptr [justcause.exe+619e88]

jmp _returnhere

_faddress: // 005951FC = JustCause.exe+1951FC

jmp _newmem

nop

nop

nop

nop

_returnhere:

[DISABLE]

aobscan(_faddress,90909090dfxxf6xxxx7axxc7xxxxxxxxxxxxebxxc7xxxxxxxxxxxx0fxxxxxx)

_faddress-5:

fld dword ptr [eax+4c]

fcomp dword ptr [justcause.exe+619e88]

dealloc(_newmem)

//Alt: db D9 40 4C D8 1D 88 9E A1 00

При активации массового убийства город превращается в город-призрак - машины без водителей, видно лишь падающих при вашем приближении пешеходов. Комментарии думаю излишни - обычный one hit kill, но в этой игре даже добивать не обязательно :) Осталось сделать фильтр на союзников...

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

Интересная инфа: в структуре героя по смещению 538h находится некий флаг действия или нажатой кнопки. Не знаю как правильно.. так вот если назначить хоткей на значение 19, то в игре станет можно прыгать на неограниченную высоту, т.е. Рико будет отталкиваться от воздуха и прыгать всё выше, пока нажата кнопка хоткея (я его попросту на кнопку прыжка поставил). Таким макаром можно на любую гору залезть) Я кстати в метро 2033 подобный флаг находил, но применения не нашёл. Сейчас попробую там прыжок проверить...

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

  • 9 месяцев спустя...

Исправил статью. Вытащил теги [TEXT], картинки залил на форум.

Встретите ещё теги [TEXT] пишите мне в личку с ссылкой на сообщение и я поправлю.

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

  • 1 год спустя...

Поставил на днях эту игру, и в долгих поисках трейнера, забрел на ваш форум. Стало очень интересно и стал разбираться. С помощью СЕ получилось определить динамический адрес, но как только ставлю бряк на доступ игра вылетает. Версия СЕ 6.2, в debugger method выставлено значение "kernelmode debugger (DBVM)". Как можно предотвратить вылеты из игры.

П.С. просьба не судить строго, много энтузиазма и желания учиться, если ошибся темой, подскажите где спросить =))

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

Попробуй ставить бряки через Olly Debugger с плагином скрытия ее от процессов (где-то на форуме у нас была тема по Олли). Но при этом надо знать, что игра должна работать в оконном режиме, это раз. И, во-вторых, надо смотреть, не используется ли какая-нибудь проверка целостности кода (тоже на форуме обсуждалось).

ЗЫ. Тема правильная, не переживай.

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

  • 2 года спустя...
×
×
  • Создать...

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

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