Исследуем патчи в DLL
Что делать, если нужная программа обновилась, а купить не представляется возможным, из-за санкций?
Правильно - исследуем существующие методы обхода в предыдущих версиях.
Сначала нахожу оригинал DLL и её пропатченную версию. Сравниваю через hex редактор.

Очень сильно был удивлён, что всего 1 изменение в 1 месте! Теперь нужно понять, а что же скрывается за этим, что бы найти такое же, но в новой версии.
Поможет нам в этом dnSpy

Идём по найденному hex адресу 0x0003DB65

Смотрим что там скрывается - это функция регистрации, что логично.

А что конкретно означает 17?

Открываем в том же месте пропатченную DLL, смотрим что же такое 2А

Очень элегантное решение, просто сделать return перед всеми проверками! Теперь функция регистрации, по мнению декомпилятора, выглядит вот так. Хотя не вырезали никакого кода, просто поменяли 1 инструкцию внутри функции.

Потом по образу и подобию, находим новое смещение в новой версии DLL и всё работает :)
Теперь для автоматизации возьмём начало функции в hex формате и в конце будет искомое число
0228CF1700066FAA02000A2C300228CF17000612011F0E1728F300000A120172213F017028F400000A120103285105002B120128F600000A6FAC02000A17
Навайбкодим небольшой скрипт hex патчера и теперь, до тех пор, пока разработчики что то не поменяют в этой DLL, обход активации будет срабатывать.
Любые названия библиотек и hex случайны и материал несёт исключительно познавательный характер.
tags: hach - hex - patch