А вообще, неломаемая защита - это миф о загробной жизни
Все что исполняется, можно сломать. Вопрос лишь в количестве затраченного времени и средств. Если это время достаточно велико, то есть шанс заработать денег, пока ее сломают.
alex, как-то тебе bogrus давал модуль для запуска экзешника из ресурсов (если я ничего не путаю). Этот модуль используется в этой программе/механизме защиты?
Нет, bogrus мне ничего не давал.
А если даже и используется, то по идее ж XP в куче не разрешает код запускать. Выходит что не используется, хотя кто знает
Не пойму, причем тут HEAP? Достаточно выделить кусок памяти функцией VirtualAlloc, присвоить ему атрибут PAGE_EXECUTE_READ, скопировать с помощью RtlMoveMemory туда код, и в принципе можно его запускать.
Гм. Я чего-то не понял. Если полезный код зашифрован, о каком взломе может идти речь? Устойчивость программы нужно проверять, имея на руках хотя бы один валидный ключ.
Ну это уже будет не взлом, а отвязка от защитного механизма, тут уже необходима защита от сдампливания. Есть идея с поблочной расшифровкой защищаемого кода, c использованием SEH кадров в качестве механизма "подкачки" данных, помоему подобная схема реализована в Asprotect.
Это довольно надежно защитит от получения дампа.
Смысл покупать твой продукт? Мы и сами можем написать что-то подобное, а почитав то, что читал ты, для написания своей защиты, может ещё и лучше напишем
идея с поблочной расшифровкой защищаемого кода, c использованием SEH кадров в качестве механизма "подкачки" данных, помоему подобная схема реализована в Asprotect.
Это довольно надежно защитит от получения дампа.
В случае с SEH известно, что там, где находится EIP, код верный так что дамп не намного сложнее.
Все что исполняется, можно сломать. Вопрос лишь в количестве затраченного времени и средств
Это верно. Как и то, что затраты на поломку должны быть адекватны тому, что будет получено в результате такой работы (т.е. ломания).
Выложи приз стоимостью в программу, т.е. 3000$, и количество взломов тебя неприятно удивит.
То что сотня человек скачала - не показатель. Из них вряд ли найдется десяток, потративших хотя бы пару часов на взлом.
А вот если ты объявишь приз в три тысячи зелёных (как и должно быть для серьёзного теста), и за пару - тройку недель никто не поломает - тогда и можно будет предполагать, что защита стойкая.
Не могу согласиться. Уверен, что даже если я предложу миллион, едва ли кто-нибудь сломает какой-нибудь РАР-архив с паролем в 50 символов Аналогично и в данном случае.
А если тебе хочется сказать: ну так предложи, погугль на тему RC5-72 и увидишь, что уже предложили.
Sharp
Автор сам признал, что кто-то уже обошёл защиту. Это факт. Если заинтересовать материально, таковых будет больше чем один-два-три.
Всё, что придумал человек, человеком же и может быть понято. Если alex - господь бог, то я скажу: "Да, человеку не по его разуму воспроизвести то же, что сделал господь бог".
А рар ломается. Погугли
Вся "стойкость" основана на предположении, что "жаба задавит" купившего и он не поделится с другими и на малом количестве экземпляров программы. Если она задавит, то купивший в первую очередь постарается возместить свои расходы, и продаст информацию к примеру за 70-80%.
Насколько я понял из беглого просмотра топика на wasm.ru, защита была обойдена благодаря слабости используемости ключа брутфорсом, что не опровергает метод, а только его реализацию.
Всё, что придумал человек, человеком же и может быть понято.
RC5-72, батенька, RC5-72.
А рар ломается. Погугли
Для RAR3 не найдено алгоритма эффективнее брутфорса. Более того, его брутфорс популярные проги осуществляют со скоростью порядка 100 паролей/сек, что делает практически невозможным взлом архива с достаточно длинным паролем за сколь-нибудь удобоваримое время.
Вся "стойкость" основана на предположении, что "жаба задавит" купившего и он не поделится с другими и на малом количестве экземпляров программы.
В том же топике это обсуждалось, можно генерить уникальный Installation ID, привязываться к железу, личным данным владельца, использовать аппаратные ключи защиты или как сделали буржуи по отношению к нашим ученым: запретили публикацию данных, полученных с использованием программы, если на это время у них нет лицензии на нее
Не пойму, причем тут HEAP? Достаточно выделить кусок памяти функцией VirtualAlloc, присвоить ему атрибут PAGE_EXECUTE_READ, скопировать с помощью RtlMoveMemory туда код, и в принципе можно его запускать.
Как это при чём? Какие типы памяти есть в исполняемом модуле? Стек и куча. А VirtualAlloc память по твоему откуда берёт? Из воздуха?
В случае с SEH известно, что там, где находится EIP, код верный так что дамп не намного сложнее.
У меня есть мысль, использовать SEH как сигнал криптопровайдеру для расшифровки очередного блока данных. К примеру, сначала у нас расшифрован кусок в 4 кбайта, программа начинает исполнятся, в какой-то момент одна из клманд перехода, например JMP прыгает за "пределы" расшифрованного куска, в результате получаем SEH и вываливаемся в процедуру его обработки, и она расшифровывает дополнительно блок памяти, и перезапускает процедуру заново. Правда при этом, программа может существенно тормозить.
Можно поступить еще проще, вынести используемые программой функции в DLL, а эти DLL зашифровать и прошить внутрь программы. Когда будет вызыватся подобная функция, DLL расшифровывается, отображается на адресное пространство процесса, и функция запускается. Такой механизм реализован в TextPAD.
Автор сам признал, что кто-то уже обошёл защиту. Это факт. Если заинтересовать материально, таковых будет больше чем один-два-три.
Защиту не обошли, в незарегистрированной версии TextPAD отсуствует только функция сохранения файла, а значит ничего не стоит "дописать" отсуствующий код прямо в EXE файл, что один из кракеров и сделал.
А если будет отсуствовать более сложная функция?
Или сразу несколько функций?
Дописать код не удасться, легче будет переписать программу с нуля.
Насколько я понял из беглого просмотра топика на wasm.ru, защита была обойдена благодаря слабости используемости ключа брутфорсом, что не опровергает метод, а только его реализацию.
Ты плохо читал, ни один из брутфорсеров с WASM.RU не смог найти ключ к TextPAD
Вся "стойкость" основана на предположении, что "жаба задавит" купившего и он не поделится с другими и на малом количестве экземпляров программы.
Мне кажется, проще всего скопилировать заранее большое количество копий программы, и для каждой сгенерировать свой уникальный ключ и им запротектировать код программы. На сайте разместить скрипт, при каждом скачивании, он будет подставлять новую версию программы. Programm1, Programm2, Programm3... Programm500,
Если пользователь разгласит ключ в интернете, то это ничего не даст. Ведь для каждой копии программы требуется свой уникальный серийник. Т.е. нужно выкладывать дистрибутив с серийником.
Главное не защитить программу на 100%, а сдержать на некоторое время распостранение взломанных версий, что позволит заработать деньги.