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

Dark Sector, здоровье, патроны...


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

Игра: Dark Sector.

post-3-1295709482,42_thumb.jpg

Спрос на трейнер: актуален (вероятность найти рабочий трейнер мала)

Дата выхода: декабрь 2008

Мин. системные требования: 2,4 ГГц, 1 Гб, 256 Мб видео

Дополнительная информация: немного фиговое управление.

На данный момент рассморено:

1.Здоровье (автор MasterGH)]Инструменты: CheatEngineRus.

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

Начинаем миссию. Для здоровья нет опознавательных признаков кроме как степень окровавленности экрана. Чем здоровье меньше, тем эффекта больше. Первое что пришло на ум так это отсев 4 байта целое, т.к. это чаще всего встречающийся тип.

Ищу неизвестное, попадаю под обстрел, нажимаю на паузу, отсеиваю правилом «уменьшилось»… и т.д.

В итоге я нашёл единственный рабочий динамический адрес.

24A60398 = 125 (полное здоровье)

Ставим брейкпоинт на доступ и получаем сразу же инструкции ниже (даже не пришлось заходить в игру).

Среди них ищем инструкцию типа А. При этом стреляю во врагов и позволяю им ранить моего героя.

post-3-1295709486,95_thumb.gif

рис1

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

Сейчас я пропущу внедрение чит-кода, чтобы вам было проще сориентироваться далее. Я сделал внедрение постоянного здоровья в первую инструкцию на рис1, но как оказалось значение с периодичностью в секунду возвращается то в 125, то становится 10000. Конечно, меня это не устроило – героя запросто могут прибить. Я поставил бряк на запись, чтобы узнать, в чём дело. И узнал что в итоге рядом с рабочим адресом лежит максимальный адрес именно он все портит.

post-3-1295709490,67_thumb.gif

Рис.2

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

Активирующий Скрипт будет таким.

Примечание (от 13.01.10)

Конечно, его можно сделать чуть проще, но я уже переделывать не буду.

 

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

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

label(pId)
registersymbol(pId)

newmem:
mov [pId],edx
_cheat1:
jmp short _originalcode
mov [edx+00000468],#100000
mov [edx+00000464],#100000
_originalcode:
cmp dword ptr [edx+00000468],00
jmp _returnhere
pId:
dd 0
_buf1:
db 90 90

DS.exe+569FE2:>17000F85DDFEFFFF8BBB9C0000008B17YYxxxxxxxx00000F8EC8FEFFFF8D54
jmp newmem
nop
nop
_returnhere:

[DISABLE]
{DS.exe+569FE2:>17000F85DDFEFFFF8BBB9C0000008B17YYxxxxxxxx90900F8EC8FEFFFF8D54
cmp dword ptr [edx+00000468],00
unregistersymbol(pId)
unregistersymbol(_buf1)
unregistersymbol(_cheat1)
dealloc(newmem)}

 

А на здоровье

 

_buf1:
readmem(_cheat1,2)

_cheat1:
db 90 90

[DISABLE]
_cheat1:
readmem(_buf1,2)

 

2.Бесконечные патроны + нет перезарядки (автор MasterGH)]Инструменты: CheatEngineRus

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

Итак, патроны в магазине имеют тип 1 байт, но я искал 4 байта и что странное нашёл )

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

post-3-1295709497,7_thumb.gif

Рис1. Поставили бряк на адрес патронов. ECX – адрес структуры.

Примечание.

er* - означает что определить тип невозможно из-за технических недостатков CE.

Почти во всех играх инструкции, работающие с патронами будут типа (B||C) – ничего удивительного.

post-3-1295709501,98_thumb.gif

Рис2. Здоровья – 10000, патронов в магазине – 25.

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

Тогда давайте поищем указатель на структуру оружия в структуре объекта героя непосредственно или многоуровневый указатель. К удивлению нашёлся один динамический адрес [1CFC1BD0]= 0x1CF424D0, который, увы, также не был в структуре героя. Но рано печалится и думать что надо лесть в отладку с головой.

Примечание.

Кстати я всё-таки слазил ))) и узнал вот что (см. рис 3 , патронов 25 в обойме, 6 – патроны в обойме пистолета, 0 – патронов у отсутствующего оружия в 3-ем слоте). Мы имеем дело с массивом указателей на определённое оружие. В объекте оружия нет указателя на объект владельца, поэтому фильтр сделать нельзя – надо изворачиваться.

post-3-1295709509,41_thumb.gif

Рис3.

Как я нашёл этот указатель писать не буду, т.к. я вас точно запутаю (пользовался только CE и установкой брекйпоинтов).

Поставим бряк на [1CFC1BD0]= 0x1CF424D0 и найдем инструкцию типа А.

А в уме держим указатель b[[1CFBD334]+0x3e8] = патронам в рожке

post-3-1295709513,58_thumb.gif

рис4. После определения типов.

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

 

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

newmem:
push ebx
mov ebx,[eax]
mov byte [ebx+3e8],#30
pop ebx
_originalcode:
cmp dword ptr [eax],00
je ds.exe+54d934
jmp _returnhere

DS.exe+54D8FB:>518BCEBB01000000FFD28B0085C07439YYxxxxxxxx8B068B90040100008D4C
jmp newmem
_returnhere:

[DISABLE]
DS.exe+54D8FB:>518BCEBB01000000FFD28B0085C07439YYxxxxxxxx8B068B90040100008D4C
cmp dword ptr [eax],00
je ds.exe+54d934
dealloc(newmem)

 

3.Бесконечные боеприпасы (автор MasterGH)]Инструменты: CheatEngineRus

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

Находим рабочий адрес патронов в «рюкзаке».

Ставим на него бряк.

Находим указатели (используя сканер памяти и указатель на pID из включенного активирующего скрипта)

post-3-1295709518,56_thumb.gif

рис 1.

Ищем адрес ECX= 14A86030 и нашли единственный указатель [01A42974] =14A86030. Ставим на него бряк на доступ и определяем инструкции типа А.

post-3-1295709522,9_thumb.gif

рис 2. Выделенная инструкция типа А.

Вытащим указатель _pres на структуру ресурсов из выделенной инструкции на рис2.

 

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

label(_pres)
registersymbol(_pres)

newmem:
mov [_pres],eax
_originalcode:
cmp dword ptr [eax],00
je ds.exe+569dd0 // [i]кстати в этом месте могут быть проблемы из-за отсутствия метки отпечатка байт (если проблема и есть (т.к. я её не проверял), то будет решена после Нового года, когда выйдет версия CE 5.6)[/i]
jmp _returnhere
_pres:
dd 0

DS.exe+569D89:>00000050897C2420FFD28B0085C07447YYxxxxxxxx8B839C0000008B088B11
jmp newmem
_returnhere:

[DISABLE]
DS.exe+569D89:>00000050897C2420FFD28B0085C07447YYxxxxxxxx8B839C0000008B088B11
cmp dword ptr [eax],00
je ds.exe+569dd0
dealloc(newmem)
unregistersymbol(_pres)

 

 

Теперь внедряем в инструкцию на рис. 1.

 


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

newmem:
pushf
push eax
mov eax,[_pres]
or eax,eax
jz short _originalcode
cmp ecx,[eax]
jne short _originalcode
mov [ecx+ebp*8+00000394],#99999
_originalcode:
pop eax
popf
mov ebx,[ecx+ebp*8+00000394]
jmp _returnhere

DS.exe+54AE8C:>0400CCCC51807C240C0053558B6C2410YYxxxxxxxx0000744656578DB19C01
jmp newmem
nop
nop
_returnhere:

[DISABLE]
DS.exe+54AE8C:>0400CCCC51807C240C0053558B6C2410YYxxxxxxxx9090744656578DB19C01
mov ebx,[ecx+ebp*8+00000394]
dealloc(newmem)
 

Результат такой, что можно сказать вауууу =)

post-3-1295709527,8_thumb.gif

рис.3

И не рассмотрено:

1) Оружие не взрывалось от датчиков

2) Деньги

3) Сделать идеальным оружие

4) Обмануть расстояние действия грефы

5) Грефа электрическая, огненная, любое метание с силой.

6) Открыть доступ ко всему оружию

Ваши статьи….

 

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

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

Уважаемый MasterGH а сейв файлы тебе могут помочь к этой игре для взлома?

У меня их несколько было. Думаю ты б еще круче мог ее взломать с етими моими сейвами.Там я делал идеальное оружие. Через 10-15 дней я закину их на сайт. Сейчас не могу, потому-что я на сесии в другом городе.

Сори если офтоп.

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

Uchiha Sasuke я дату видел, но решения вопроса по этому поводу не увидел.

MasterGH правильно написал что рабочего тренера так просто не найдеш.У меня лично было много тренеров к Дарк Сектору, но работал (!!!) только тренер Мастера, за что ему большое спасибо.

3 года ето не срок для интересных игр для взлома. Я ломал разные игры которым и по 15 и больше лет и которым нет еще и года.

А сейвы виложу и обясню что в них да как когда буду в своем городе.

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

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

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

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

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

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