Основы реверсивной инженерии или как взламывают игры

Реверсивная инженерия — изучение того, как устроено какое-то программное обеспечение, с целью понять механизм его работы. Эта информация может использоваться в будущем для создания похожего продукта или внесения изменения в уже существующий.

DLL подменяет адрес функции в таблице адресов программы, кажется, мы подсмотрели это поведение у кукушек. 
373373

@Mike Kozlov а если допустим мы имеем файл где описываются характеристики персонажа, вроде такого (см. скриншот, кусок из hex editor). Как правильно работать с ним? Например я хочу сменить имя (имя ж может быть короче или длинее) персонажа или его характеристики.

2
Ответить

Комментарий недоступен

4
Ответить

Можно попробовать поискать строки и редактировать их, в принципе в правой части их даже может быть заметно.

Вообще, все зависит от формата файла, например исполняемые файлы у винды делятся на секции, в одной из которых исходный код, в другой данные (если упростить)

Если имя длиннее, то сложнее. Как вариант - добавить в конец файла новую секцию и разместить его там, но придется заставить программу его там искать.

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

2
Ответить

Да вон же допустим у переменной is in main quest два значения двойных слов $01 и $10. Экспериментируй. Во времена ms-dos я просто сравнивал файлы(если у них фиксированная структура) fc /b filename1 filename2 > diff.txt 
Потом открываешь diff.txt и смотришь что поменялось. Слева твои смещения и будут. 
Впрочем, я и сейчас так делаю, так как дальше fc и дизассемблирования и отладки руками старого досявого не ушел, лол. 

Ответить

А, не заметил имя на скриншоте.

Еще можно попробовать «врезать» внутрь символы, сдвинув все остальное.

Я бы попробовал сравнить два файла - такой и с очень длинным именем.

Ответить