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, иначе работать точно не будет.
Прошу помощи в обходе защиты программы (проверка подлинности файла + премиум ключ).
Если кратко это лаунчер для установки 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, иначе работать точно не будет.