Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Инструкция по бесконечным деньгам на примере Global Outbreak.



Инструкция по бесконечным деньгам на примере Global Outbreak.

 

1. Открываем файл assets/bin/Data/Managed/Assembly-CSharp.dll в программе.NET Reflector или IDA Pro. Первое покажет практически исходный код, второе только байты инструкций

2. И там и там, ищем что-то похожее на списание денег, например по слову Credits

3. Находим функцию SpendCredits, смотрим и понимаем, что тут как раз и списываются деньги (конкретно списываются они в PlayerData15.Instance().SpendCredits, мы просто вырежем это и всё)

4. Видно, что в случае успешного списание функция возвращает TRUE, если же денег нету - FALSE

5. Следовательно, надо сделать, что бы она всегда возвращала TRUE

 

 

Это у нас, IDA PRO.

 

 

Здесь у нас,.NET Reflector.

 

6. Это и есть возврат положительного результата:

 

17 ldc.i4.1

2A ret

Вставляем его в самое начало функции, заменяя

 

28 B4 16 00 06 call class PlayerData15 PlayerData15::Instance()

 

на

 

17 ldc.i4.1

2A ret

00

00

00

Заменяем только байты, текст - ldc.i4.1, ret, call class PlayerData15 PlayerData15::Instance() это лишь расшифровка байтов

 

7. Теперь функция всегда будет возвращать 1, и кредиты будут бесконечными!

8. Аналогичные операции проделываем с SpendZomberries

9. Чисто в целях визуальных, что бы были красивые циферки в окне ресурсов, находим функцию GetNumCredits()

 

 

 

10. Как видно, она складывает кредиты игрока и кредиты за стадию

11. Заменяем кредиты игрока на 999999

02 ldarg.0

7B D5 11 00 04 ldfld class SecureInt PlayerData15::m_numCredits

6F 31 22 00 06 callvirt instance int32 SecureInt::GetValue()

на

 

20 3F 42 0F 00 ldc.i4 0xF423F

00

00

00

00

00

00

 

Те вырезали первое слагаемое - кредиты игрока, и заменили на константу 999999

В шестнадцатиричное системе счисления 999999 будет 0xF423F, записываем как 3F 42 0F 00 учитывая ОБРАТНЫЙ порядок байт, нулми дополняем до 4 байт

 

12. Внимание! Размеры заменяемых команд должны совпадать!

Поэтому 11 байт заменили на 5 и добили ещё шестью нулями до 11

 

Что бы модифицировать загруженную длл прямо в.NET Reflectore, надо поставить аддон Reflexil - http://reflexil.net/

Надо скачать, и добавить через меню Tools->Add-Ins

 

Описание команд можно найти тут - http://en.wikipedia.org/wiki/List_of_CIL_instructions

 

Дополнение к инструкции:

Что бы модифицировать загруженную длл прямо в.NET Reflectore, надо поставить аддон Reflexil - http://reflexil.net/

Надо скачать, и добавить через меню Tools->Add-Ins

 

 

Вот и все, я уверен что вы ничего не поняли. Другие курсы по обучению вы найдете в нашей группе Вконтакте – vk.com\androidgamescheats


Дата добавления: 2015-09-29; просмотров: 21 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
 | Система дидактичних принципів

mybiblioteka.su - 2015-2024 год. (0.006 сек.)