Реверс инженеринг в doom 1
Как то раз ковырялся в коде и увидел это
Хм... В doom-е есть анти пиратская защита? Давайте посмотрим...
И так, что-бы вас не путать скажу, что cmp - это команда сравнения которая записывает в регистры результаты сравнения. Затем используется jz (Jump if zero), если сравнение оказалось верным (Переход если ноль ). Попробуем включить антипиратскую защиту, и посмотрим что будет.
А вот и кстати ещё одна проверка по переменной.
Вот так. Мы его нашли. В регистр esi записывается 1, а потом данные регистра esi переносятся в некую переменную. Попробуем изменить значение.
Отлично! Всё сделано! Сохраняем изменения и смотрим!
Увы, но видимо разработчики и/или пираты очень были проворны и похоже то значение которое я изменил было не одним. Хорошо, пойдём другим путём.
Что делаем? Убираем проверку.
Как видите, вместо перехода стоит nop (nope) и теперь проверка не будет работать. Я оставил cmp просто потому что было лень убирать ;D (он не влиет на работу). И так смотрим что получилось
Всё работает. Теперь это предупреждение будет появляться каждый раз когда будете запускать игру. Вот как то вот так. Думаю что возможно он вам был "полезен", а также в том вы узнали что такое на практике реверс инженеринг. Сделано при помощи ida, но в x64dbg тоже есть возможность "патча" файлов