Это старая версия документа!
Reverse Engineering
Обратная разработка (англ. reverse engineering), также обратное проектирование, обратный инжиниринг или реверс-инжиниринг — исследование некоторого готового устройства или программы, а также документации на него с целью понять принцип его работы; например, чтобы обнаружить недокументированные возможности (в том числе программные закладки), сделать изменение или воспроизвести устройство, программу или иной объект с аналогичными функциями, но без прямого копирования.
Применяется обычно в том случае, если создатель оригинального объекта не предоставил информации о структуре и способе создания (производства) объекта. Правообладатели таких объектов могут заявить, что проведение обратной разработки или использование её результатов нарушает их исключительное право по закону об авторском праве и патентному законодательству.
От автора
Данный раздел или цикл статьей, попытка скомпилировать в некую ясную структуру знания, которые мне удалось собрать за период с 2017 года по 2025 год. В мае 2017 года меня увлекла идея расширения площади карты в серии стратегий «CitiesXXL». К концу 2017 года я пришёл к выводу что для достижения данной цели необходимо разработать полноценный «мод-конверсию». В последующем я понял что «копать» необходимо в сторону разбора и модификации исполняемого файла «.exe», что привело меня к дизассемблированию и в последующем к изучению дисциплины «Reverse Engineering».
В процессе изучения данной тематики ИТ-сферы я раз за разом сталкивался с необходимостью формулировки некого «толкового словаря», которые бы включал самые важные и значимые вехи данной дисциплины. Раз за разом собирая и структурируя материал я по множеству раз переписывал тетради с записями в итоге я понял, что это слишком большая трата времени и мне необходимо сформировать условное «пространство имён» для дальнейшей разработки. Данный раздел не попытка кликбейта или получения популярности на ниве «Reverse Engineering», а лишь попытка систематизации и каталогизации данных полученных в ходе изучения. Ниже будет приведён полный список источников используемых при разработке и подготовке материалов. Я старался и надеюсь что данный структурированный материал будет полезен не только мне.
Третья самая важная причина для меня как для программиста стала необходимость формировать массив данных на стыке нескольких больших и не очень сфер, а именно:
- «Reverse Engineering» в рамках разбора механизма формирования размеров игровой карты.
- Китбашинг моделей зданий из других источников для их дальнейшего использования в рамках разработки мода.
- Использование LUA-интерфейса игры для реализации пакета карт и мода.
- Разработка 3D-моделей для дальнейшего развития модификации(города), глупо было бы создать большую карту и не строить на ней город.
В данный момент я продолжаю работать над модом.
Источники информации при подготовке материала:
- https://ru.wikipedia.org/wiki/Шестнадцатеричная_система_счисления
- https://ru.wikipedia.org/wiki/Обратная_разработка
- https://ru.wikipedia.org/wiki/Двоичная_система_счисления