Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #87, МАРТ 2006 г.

Вечно жить не запретишь

крис касперски ака мыщъх

Хакер, номер #087, стр. 087-064-7


фрагмент сэйв-файла с ячейками, хранящими здоровье и броню

000000B0: 00 00 00 00-44 00 5F 00-01 00 01 0A-00 00 00 00 D _ ? ??

000000C0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

000000D0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

000000E0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

000000F0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 30 0

Исправляем оба числа на FFFFh и загружаем исправленный сэйв в игру. Нетрудно заметить, что у нас все получилось :).

[заключение]

Приобретенные навыки оказываются очень полезными при расшифровке сетевых протоколов и реконструкции недокументированных форматов файлов и файловых систем. Квалифицированных специалистов мало, поэтому на них всегда присутствует устойчивый спрос, так что бессмертие в играх — это совсем не забава! Это очень и очень серьезно! Многие выдающиеся хакеры начинали именно с бессмертия. Осваивали hex-редактор, терзали отладчик, понемногу изучали ассемблер и постепенно, шаг за шагом двигались к тому, кем они стали сейчас. В общем, ты меня понял. Вливайся!

насколько законно патчить игры

Мне часто приходится слышать, что модификация игр незаконна и хачить можно только сэйвы. В корне неверное утверждение! По российскому законодательству, на своем компьютере с программой можно делать все, что угодно, в том числе и заменять DEC на NOP. А вот распространять хакнутый файл нельзя, что логично и правильно.

автопатчер add_ammo_clip.c

#define AMMO_ADDR 0x56AF28

#define AMMO_VALUE 66

#define AMMO_SIZE 1

main(int c, char** v)

{

// объявляем переменные и проверяем аргументы командной строки

int x; HANDLE h; unsigned int ammo = AMMO_VALUE; if (c < 2) return -1;

// открываем процесс

if (!(h=OpenProcess(PROCESS_VM_WRITE | PROCESS_VM_OPERATION ,0,atol(v[1]))))

return printf("-err:open process %d\n",atol(v[1]));

Назад на стр. 087-064-6  Содержание  Вперед на стр. 087-064-8