====== 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/Регистр_процессора * https://ru.wikipedia.org/wiki/Двоичная_система_счисления * https://blic.fandom.com/ru/wiki/Краткий_перечень_команд_ассемблера * https://wiki.osdev.org/CPU_Registers_x86 * https://dzen.ru/a/YxibcFJYUG_mqPyK * https://metanit.com/assembler/tutorial/1.3.php * https://tproger.ru/translations/reverse-engineering-basics * https://skillbox.ru/media/code/yazyki_programmirovaniya_chto_eto_takoe/ * https://rb.ru/story/urovni-yazykov-programmirovaniya/ * https://codesecure.ru/posts/1 * https://habr.com/ru/articles/855226/