Реверс инженеринг в doom 1

Как то раз ковырялся в коде и увидел это

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

Хм... В doom-е есть анти пиратская защита? Давайте посмотрим...

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

И так, что-бы вас не путать скажу, что cmp - это команда сравнения которая записывает в регистры результаты сравнения. Затем используется jz (Jump if zero), если сравнение оказалось верным (Переход если ноль ). Попробуем включить антипиратскую защиту, и посмотрим что будет.

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

А вот и кстати ещё одна проверка по переменной.

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

Вот так. Мы его нашли. В регистр esi записывается 1, а потом данные регистра esi переносятся в некую переменную. Попробуем изменить значение.

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

Отлично! Всё сделано! Сохраняем изменения и смотрим!

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

Увы, но видимо разработчики и/или пираты очень были проворны и похоже то значение которое я изменил было не одним. Хорошо, пойдём другим путём.

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

Что делаем? Убираем проверку.

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

Как видите, вместо перехода стоит nop (nope) и теперь проверка не будет работать. Я оставил cmp просто потому что было лень убирать ;D (он не влиет на работу). И так смотрим что получилось

Реверс инженеринг в doom 1 Длиннопост, Реверс-инжиниринг, Doom, Защита

Всё работает. Теперь это предупреждение будет появляться каждый раз когда будете запускать игру. Вот как то вот так. Думаю что возможно он вам был "полезен", а также в том вы узнали что такое на практике реверс инженеринг. Сделано при помощи ida, но в x64dbg тоже есть возможность "патча" файлов

Автор поста оценил этот комментарий
Кстати я посмотрел, и выяснил что это первый пост такой направленности....
2
DELETED
Автор поста оценил этот комментарий

Инструментарий (IDA) не указан. Реверс-инженеринг - сложная тема даже для тех, кто в теме. Вместо IDA рекомендую достать Ghidra от АНБ США. Из России инструмент недоступен. Но это же не проблема для такого мастера как ТС.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ух ты, не знал об этой программе, спасибо за рекомендацию. Посмотрел и увидел что она бесплатна и open source и причём (!) с таким-же функционалом как ida
показать ответы