Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

 

  Вопрос: Защита программ от взлома с помощью PowerBASIC Добавлено: 23.03.05 14:44  

Автор вопроса:  alex

Ответить

  Ответы Всего ответов: 88  

Номер ответа: 16
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #16 Добавлено: 23.03.05 20:43
А ты его распакуй upx' ом - тогда вообще будет 170 кБ. Собственно защищаемый pbnote.exe - 45,5 кБ, остальные 125 - защита.

Ответить

Номер ответа: 17
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #17
Добавлено: 23.03.05 20:46
Похоже я вылетаю. Дома 9x, а на работе инструментов нет необходимых, а вообще конечно было бы интересно.

sne,
 Чего молчишь? Ты же просил дать чего нибудь поламать. :)

alex,
 Не, мне такая защита не подходит. Нужна совместимость со старыми платформами.

Ответить

Номер ответа: 18
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #18
Добавлено: 23.03.05 20:48
Угу, оно ещё и запаковано.

UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo

Кстати, а этот UPX фриварный? А то как бы к защите не пришлось ещё пару сотен вечнозелёных за него отваливать :)

Ответить

Номер ответа: 19
Автор ответа:
 alex



Вопросов: 84
Ответов: 453
 Профиль | | #19 Добавлено: 23.03.05 22:04
А вообще, неломаемая защита - это миф о загробной жизни ;)


Все что исполняется, можно сломать. Вопрос лишь в количестве затраченного времени и средств. Если это время достаточно велико, то есть шанс заработать денег, пока ее сломают.

alex, как-то тебе bogrus давал модуль для запуска экзешника из ресурсов (если я ничего не путаю). Этот модуль используется в этой программе/механизме защиты?


Нет, bogrus мне ничего не давал.


А если даже и используется, то по идее ж XP в куче не разрешает код запускать. Выходит что не используется, хотя кто знает :)


Не пойму, причем тут HEAP? Достаточно выделить кусок памяти функцией VirtualAlloc, присвоить ему атрибут PAGE_EXECUTE_READ, скопировать с помощью RtlMoveMemory туда код, и в принципе можно его запускать.

Гм. Я чего-то не понял. Если полезный код зашифрован, о каком взломе может идти речь? Устойчивость программы нужно проверять, имея на руках хотя бы один валидный ключ.


Ну это уже будет не взлом, а отвязка от защитного механизма, тут уже необходима защита от сдампливания. Есть идея с поблочной расшифровкой защищаемого кода, c использованием SEH кадров в качестве механизма "подкачки" данных, помоему подобная схема реализована в Asprotect.
Это довольно надежно защитит от получения дампа.

  

Ответить

Номер ответа: 20
Автор ответа:
 alex



Вопросов: 84
Ответов: 453
 Профиль | | #20 Добавлено: 23.03.05 22:08
Кстати, а этот UPX фриварный? А то как бы к защите не пришлось ещё пару сотен вечнозелёных за него отваливать :)


UPX фриварный, но он только для уменьшения размера проги. Можно юэать любой упаковщик

Ответить

Номер ответа: 21
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #21 Добавлено: 23.03.05 23:06

Смысл покупать твой продукт? Мы и сами можем написать что-то подобное, а почитав то, что читал ты, для написания своей защиты, может ещё и лучше напишем :)

Ответить

Номер ответа: 22
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #22
Добавлено: 23.03.05 23:46
идея с поблочной расшифровкой защищаемого кода, c использованием SEH кадров в качестве механизма "подкачки" данных, помоему подобная схема реализована в Asprotect.
Это довольно надежно защитит от получения дампа.
В случае с SEH известно, что там, где находится EIP, код верный :) так что дамп не намного сложнее.

Ответить

Номер ответа: 23
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #23 Добавлено: 24.03.05 00:04
Все что исполняется, можно сломать. Вопрос лишь в количестве затраченного времени и средств

Это верно. Как и то, что затраты на поломку должны быть адекватны тому, что будет получено в результате такой работы (т.е. ломания).

Выложи приз стоимостью в программу, т.е. 3000$, и количество взломов тебя неприятно удивит.

То что сотня человек скачала - не показатель. Из них вряд ли найдется десяток, потративших хотя бы пару часов на взлом.
А вот если ты объявишь приз в три тысячи зелёных (как и должно быть для серьёзного теста), и за пару - тройку недель никто не поломает - тогда и можно будет предполагать, что защита стойкая.

Ответить

Номер ответа: 24
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #24
Добавлено: 24.03.05 00:26
Не могу согласиться. Уверен, что даже если я предложу миллион, едва ли кто-нибудь сломает какой-нибудь РАР-архив с паролем в 50 символов :) Аналогично и в данном случае.
А если тебе хочется сказать: ну так предложи, погугль на тему RC5-72 и увидишь, что уже предложили.

Ответить

Номер ответа: 25
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #25 Добавлено: 24.03.05 02:05
Sharp
Автор сам признал, что кто-то уже обошёл защиту. Это факт. Если заинтересовать материально, таковых будет больше чем один-два-три.
Всё, что придумал человек, человеком же и может быть понято. Если alex - господь бог, то я скажу: "Да, человеку не по его разуму воспроизвести то же, что сделал господь бог".

А рар ломается. Погугли :)

Вся "стойкость" основана на предположении, что "жаба задавит" купившего и он не поделится с другими и на малом количестве экземпляров программы. Если она задавит, то купивший в первую очередь постарается возместить свои расходы, и продаст информацию к примеру за 70-80%.

Ответить

Номер ответа: 26
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #26
Добавлено: 24.03.05 09:16
Автор сам признал, что кто-то уже обошёл защиту.
Насколько я понял из беглого просмотра топика на wasm.ru, защита была обойдена благодаря слабости используемости ключа брутфорсом, что не опровергает метод, а только его реализацию.
Всё, что придумал человек, человеком же и может быть понято.
RC5-72, батенька, RC5-72.
А рар ломается. Погугли :)
Для RAR3 не найдено алгоритма эффективнее брутфорса. Более того, его брутфорс популярные проги осуществляют со скоростью порядка 100 паролей/сек, что делает практически невозможным взлом архива с достаточно длинным паролем за сколь-нибудь удобоваримое время.
Вся "стойкость" основана на предположении, что "жаба задавит" купившего и он не поделится с другими и на малом количестве экземпляров программы.
В том же топике это обсуждалось, можно генерить уникальный Installation ID, привязываться к железу, личным данным владельца, использовать аппаратные ключи защиты :) или как сделали буржуи по отношению к нашим ученым: запретили публикацию данных, полученных с использованием программы, если на это время у них нет лицензии на нее :(

Ответить

Номер ответа: 27
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #27
Добавлено: 24.03.05 10:33

Не пойму, причем тут HEAP? Достаточно выделить кусок памяти функцией VirtualAlloc, присвоить ему атрибут PAGE_EXECUTE_READ, скопировать с помощью RtlMoveMemory туда код, и в принципе можно его запускать.

 Как это при чём? Какие типы памяти есть в исполняемом модуле? Стек и куча. А VirtualAlloc память по твоему откуда берёт? Из воздуха?

Ответить

Номер ответа: 28
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #28
Добавлено: 24.03.05 10:38
Global/Local/Heap/VirtualAlloc - это всё функции кучи (или как ты грязно выругался - HEAP ;)).

Ответить

Номер ответа: 29
Автор ответа:
 alex



Вопросов: 84
Ответов: 453
 Профиль | | #29 Добавлено: 24.03.05 11:44
В случае с SEH известно, что там, где находится EIP, код верный :) так что дамп не намного сложнее.


У меня есть мысль, использовать SEH как сигнал криптопровайдеру для расшифровки очередного блока данных. К примеру, сначала у нас расшифрован кусок в 4 кбайта, программа начинает исполнятся, в какой-то момент одна из клманд перехода, например JMP прыгает за "пределы" расшифрованного куска, в результате получаем SEH и вываливаемся в процедуру его обработки, и она расшифровывает дополнительно блок памяти, и перезапускает процедуру заново. Правда при этом, программа может существенно тормозить.
Можно поступить еще проще, вынести используемые программой функции в DLL, а эти DLL зашифровать и прошить внутрь программы. Когда будет вызыватся подобная функция, DLL расшифровывается, отображается на адресное пространство процесса, и функция запускается. Такой механизм реализован в TextPAD.

Автор сам признал, что кто-то уже обошёл защиту. Это факт. Если заинтересовать материально, таковых будет больше чем один-два-три.


Защиту не обошли, в незарегистрированной версии TextPAD отсуствует только функция сохранения файла, а значит ничего не стоит "дописать" отсуствующий код прямо в EXE файл, что один из кракеров и сделал.
А если будет отсуствовать более сложная функция?
Или сразу несколько функций?
Дописать код не удасться, легче будет переписать программу с нуля.

Насколько я понял из беглого просмотра топика на wasm.ru, защита была обойдена благодаря слабости используемости ключа брутфорсом, что не опровергает метод, а только его реализацию.


Ты плохо читал, ни один из брутфорсеров с WASM.RU не смог найти ключ к TextPAD


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


Мне кажется, проще всего скопилировать заранее большое количество копий программы, и для каждой сгенерировать свой уникальный ключ и им запротектировать код программы. На сайте разместить скрипт, при каждом скачивании, он будет подставлять новую версию программы. Programm1, Programm2, Programm3... Programm500,

Если пользователь разгласит ключ в интернете, то это ничего не даст. Ведь для каждой копии программы требуется свой уникальный серийник. Т.е. нужно выкладывать дистрибутив с серийником.
 
Главное не защитить программу на 100%, а сдержать на некоторое время распостранение взломанных версий, что позволит заработать деньги.

Ответить

Номер ответа: 30
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #30 Добавлено: 24.03.05 11:51
Ну значит alex изобрёл неломаемую защиту :)))

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам