Прошу помощи в обходе защиты проверки файла и премиум ключа программы

BlueScreen

New member
02.02.2026
1
0
Доброго времени суток!

Прошу помощи в обходе защиты программы (проверка подлинности файла + премиум ключ).
Если кратко это лаунчер для установки windows с красивым интерфейсом и кучей настроек.
Но автор защитил его и сделал проверку подлинности устанавливаемого файла (install.wim\install.esd)
у меня получилось взломать старый его лаунчер просто перрескочив все проверки.
В новом лаунчере так не получилось + я не знаю как обойти премиум функции, чтобы они работали без ключа (либо с левым ключом)



Состав прилагаемых файлов :
1. два скриншота в которых показано, что я пытался сделать, что дало результат, но крайне сомнительный (программа меня допустила к настройкам, но пропускает все этапы и фактически ничего не ставит)
2. Старый взломанный лаунчер
3. setup от сборки автора win 10. Изначально был упакован в UPX, я спешно его снял.
4. setup от сборки автора win 11. Ситуация с UPX аналогичная.
ну и образы (папка в которой работает образ + подлинные установочные файлы )
5. не подлинный мой установочный файл


Положил специально две версии, потому что они отличаются по весу (в win11 немного меньше), может это как-то повлияет на взлом, не знаю.

Так же вот все находки в новых версиях ланучера:

Среда разработки: Язык программирования: Embarcadero Delphi (Object Pascal)

Основные типы защиты в данной программе:

1. Тип защиты: "Integrity Trap" (Ловушка на изменение кода)

Реализация: Проверка контрольных сумм. Проверка осуществлена не по одному конкретному адресу, а реализована как совокупность из суммы значений по разным адресам. Если заменить авторский установочный файл install.esd, то лаунчер даже не выдаст интерфейс.

Почему не сработают банальные действия: Если «в лоб» затереть проверку диска NOP-ами (90 90...), контрольная сумма файла изменится. Программа увидит, что её код «продырявлен», и просто не запустится.

Результат для юзера: Ты вроде бы убрал проверку, но программа превратилась в «кирпич». Банальный патчинг тут бессилен без одновременного исправления алгоритма CRC.

2. Тип защиты: "Stack/FPU Corruption" (Инструкции fist/fld)

Реализация: Использование математических команд для вычисления адресов.

Почему не сработают банальные действия: Если затереть NOP-ами кусок кода, который кажется «лишним» (например, странные математические операции), нарушается состояние стека сопроцессора.

Результат для юзера: Программа падает с Access Violation в совершенно другом месте. Юзер думает: «Я же просто стер ненужный кусок», но на самом деле он разрушил цепочку вычислений, на которой держалась вся логика.

3. Тип защиты: "Cascading Jumps" (Каскадные прыжки)

Реализация: Вместо одной прямой проверки IF (Disk) THEN (Run), автор сделал цепочку: Check1 -> Jump1 -> Check2 -> Jump2.

Почему не сработают банальные действия: Начинающий обычно находит один прыжок (например, JZ на ошибку), меняет его на JMP и думает, что победил. Но через пару команд стоит вторая, скрытая проверка, которая снова кидает его на ошибку или в бесконечный цикл.

Результат для юзера: «Бег по кругу». Ты правишь один прыжок, но программа всё равно находит способ выкинуть окно с «мороженым».

4. Тип защиты: "Object Reference Trap" (Нулевые указатели в Delphi)

Реализация: Проверка диска встроена в конструктор главной формы.

Почему не сработают банальные действия: Если просто «перепрыгнуть» (JMP) процедуру проверки диска, выполнение пойдет дальше, но переменные и объекты (кнопки, поля ввода) не будут созданы, так как они инициализировались внутри той самой процедуры, которую мы проскочили.

Результат для юзера: Программа запускается, но при первом же клике или даже при попытке отрисовать окно происходит краш, так как код пытается обратиться к «пустоте» (nil pointer).

5.Тип защиты: "License Data Dependency & Logic Integrity" (Связка через Name/Key в autorun.inf)

Реализация: Использование внешнего файла autorun.inf не как элемента автозапуска Windows, а как критически важного модуля инициализации. Параметры Name (идентификатор) и Key (крипто-ключ) считываются лаунчером на этапе входа в точку исполнения. Эти данные не просто проверяются на «верно/неверно», а внедряются в переменные, которые управляют всей дальнейшей работой программы.


Почему эта защита устойчива к банальным попыткам обхода:

Блокировка установки «из-под системы»: Отсутствие параметров Name и Key (или самого файла autorun.inf при запуске с жесткого диска) делает невозможным старт процесса установки. Программа спроектирована так, что без этих данных она не может сформировать корректные пути к зашифрованным архивам. Запуск «из-под системы» (напрямую из Windows без оригинального носителя) технически невозможен, так как лаунчер переходит в режим «ожидания ключа», блокируя интерфейс.

Крах логики при попытке «перепрыгнуть» (JMP): Банальная замена условного перехода (Jump) на безусловный, чтобы проигнорировать отсутствие файла, приводит к катастрофическим ошибкам. Поскольку данные Name и Key используются в вычислениях внутри программы, их отсутствие (нулевые значения) ломает логику инициализации объектов Delphi.

Результат: Программа пытается обработать «пустые» переменные, что неизбежно приводит к исключению Access Violation

Бесполезность зануления (NOP-инга): Попытка «затереть» код защиты NOP-ами не дает успеха, так как защита в данном лаунчере является позитивной, а не негативной. Программе нужны эти данные для работы, а не просто «отсутствие запрета». Удаляя проверку, взломщик не создает данные Key, а значит, лаунчер всё равно останется функционально «мёртвым» скелетом, неспособным организовать установку "из под системы"


В целом всё, что я нашел.
Сразу скажу, что я не реверс инженер и очень далек от этого и для меня даже взлом такого уровня очень тяжелый.
Просто хочу пользоваться понравившейся мне програмкой :)
Заранее благодарю всех, кто не пройдёт мимом и поможет.

P.S.: Если что обязательно перед тестом переименовывайте файлы просто в setup.exe и install.esd, иначе работать точно не будет.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Популярный контент

WAPT