Скриншот программы PilotEdit
PilotEdit - серьезный текстовый редактор для работы с файлами любого размера. Он умеет открывать гигантские файлы, не съедая всю оперативную память, поддерживает любые кодировки с возможностью их смены на лету. В арсенале есть режимы колонок, HEX-редактирование, сравнение файлов и даже встроенный скриптовый движок. Инструмент мощный, но все эти радости жизни доступны в полной мере только после покупки лицензии, а триал имеет свои ограничения. Это и будем исправлять.

Скриншот программы PilotEdit
PilotEdit - серьезный текстовый редактор для работы с файлами любого размера. Он умеет открывать гигантские файлы, не съедая всю оперативную память, поддерживает любые кодировки с возможностью их смены на лету. В арсенале есть режимы колонок, HEX-редактирование, сравнение файлов и даже встроенный скриптовый движок. Инструмент мощный, но все эти радости жизни доступны в полной мере только после покупки лицензии, а триал имеет свои ограничения. Это и будем исправлять.
Если посмотреть, на офсайте есть несколько вариантов инсталляторов. Я беру последний 32-битный инсталлятор в редакции Pro. Устанавливаем, смотрим что получается. Главный исполняемый файл ничем не упакован, отправляем его на разбор в дизассемблер.

Триальное окно
Сразу появляется окно с полем для серйного номера, а главное, тут используется уникальный номер HWID, который создается для каждого компьютера.

Сообщение о неправильной регистрации
Вполне очевидно: без валидного серийника программа сразу же выдаст ошибку регистрации. Но это нас не останавливает, просто пропускаем окно.

Окно "О программе"
Поищем строки, связанные с триалом, регистрацией, покупкой и тому подобное. На мой взгляд, самая заметная цель - это окно "О программе".

Строка в файле
В исполняемом файле обнаруживается юникодная строка "This copy of PilotEdit is unregistered." - это именно то, что нам нужно. Теперь переходим к дизассемблеру и ищем место в листинге, где эта строка используется.
Я немного сократил листинг, оставив только самое важное. Конструкция типовая: проверка регистрации и в зависимости от результата выполняется или не выполняется условный переход, затем выводится либо строка с лицензией, либо сообщение о нелегальной копии. Разница лишь в том, что сама функция проверки тут не вызывается, она отработала где-то раньше. Здесь же просто проверяется флаг "регистрация" в переменной dword_16B46A4.

Перекрестные ссылки на указатель
Теперь посмотрим перекрестные ссылки на указатель dword_16B46A4, сразу станет понятно, где меняется переменная, а где она проверяется. Обнаруживается код инициализации, все остальное - проверки. Начнем с первого же адреса 008E2046 и команды mov dword_16B46A4, 1. Это и есть инициализация. Переходим в листинге по указанному адресу: чуть выше видно начало функции sub_008E1F80 - функция проверки регистрации.
Дублировать код не буду, расскажу словами. В этой функции выполняется несколько различных проверок: если хотя бы одна из них проходит успешно, переменная флага регистрации dword_16B46A4 инициализируется значением 1, и программа считает регистрацию успешной.

Патчим код
Как вы помните, серийники используют уникальные номера HWID. Так что для удобства просто впишем в самое начало функции проверки пару команд: MOV dword_16B46A4, 1 и RET. Тем самым инициализация всегда будет выполняться с правильным значением, независимо от железа. Сохраняем изменения, проверяем.

Программа успешно "зарегистрирована"
Сообщение о регистрации больше не появляется. В интерфейсе программы исчезли все упоминания о необходимости покупки, а в окне "О программе" теперь красуется полная лицензия. Проверяем функционал, все работает без ограничений. Цель достигнута.
Просмотров: 555 | Комментариев: 5
Отзывы посетителей сайта о статье
Заполните форму для добавления комментария
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | CudaText 1.236.0.5 | 0 | 11.55 | 15-09-2026 |
| 2 | Plain Text Editor Review: The Simple Text Editor macOS Needs | 0 | 7.64 | 25-12-2025 |
| 3 | Argente Drive Analyzer 1.0.0.9 | 0 | 10.91 | 07-09-2026 |
| 4 | Как заглянуть внутрь.exe, собранного через Nuitka? Новый инструмент с открытым кодом | 0 | 6.87 | 21-06-2026 |
| 5 | sed @ Savannah: sed-4.10 released [stable] | 0 | 9.02 | 22-04-2026 |
| 6 | pylint - 4.0.5 | 0 | 26.67 | 20-02-2026 |
| 7 | Выпуск утилиты для проверки целостности файлов Precizer 0.16.0 | 0 | 5 | 02-07-2026 |
| 8 | pytest - 9.1.0 | 0 | 16.67 | 13-06-2026 |
| 9 | Релиз античит-инструментария TLAC 2.0 | 0 | 7 | 29-06-2026 |