| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| reverseenengineering [2025/06/23 21:02] – Lex | reverseenengineering [2025/07/04 17:28] (текущий) – [Источники информации при подготовке материала:] Lex |
|---|
| ====== Reverse Engineering ====== | ====== 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/ |