|
|
|
h2o |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
Какие я только способы не придумывал, всю мою защиту можно обойти простой заменой проверки je на jnz и всё! прога будет сломана!!!
Куда мне встроить проверку чтобы её было сложно обойти? Вроде защита нормальная придумана, выскажитесь так ли это: получаю из своей проги серийники тома винта, винды, название биоса, инфа о проце, вся эта строка посимвольно переводится в число, кодируясь (Xor) кодовым словом. Закодированная строка кодируется в BASE64, и вычисляется 128бит хэш этой BASE64 строки. В проге я не храню паролей, кодов, только алгоритмы их получения, а в качестве ключа предоставляю только хэш! з.ы. посоветуйте НОРМАЛЬНЫЙ пример получения серийника проца, а то сколько я их не видел, все непутёвые либо не то что мне нужно! --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: нет Всего: 484 |
Не проверку.
Просто кодируй какие-то данные. Данные должны использоваться по ходу программы. Если данные будут декодированы неверно, то программа будет глючить, т.к. константы будут неверны. Простой способ: если используешь WinAPI сообщения, то используй не их сами, а массив DWORDов, который и кодируй. При использовании, если в массиве неверные данные, то будут слаться совершенно левые сообщения и программа будет глючить по максимуму, если вообще будет работать. Можно не только номера сообщений, а вообще любые константы привлечь к этому увлекательному процессу. P.S. xor - не лучшая защита. |
|||
|
||||
h2o |
|
||||
Бывалый Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
А что лучше? Snowy, а пример того что описал не знаешь где найти или может у тебя есть? а то неочень понимаю как это должно работать! Я вообще думаю, а можно можно ли такое реализовать: сделать главную процедуру закодированой, тоесть вместо
написать в коде проги где-то
тоесть тот же самый код процедуры, только закодированный например BASE64. ключ для раскодирования будет предоставлен по лицензии. При работе прога дойдя до места запуска этой процедуры, грузит непонятный код в память, там расшифровывает её ключем и выполняет! тоесть ехе будет не сломать, т.к. всё будет в оперативе!!! или это нереально? з.ы. прочитав до конца, незабудьте что было вначале сообщения! --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
||||
|
|||||
_hunter |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: нет Всего: 98 |
это реально, но только не на ЯВУ. на асме -- сколько угодно
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Snowy |
|
||||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: нет Всего: 484 |
Если в нее расшифрована не еденица, то получим ошибку. И таких фокусов понавставлять во всю программу. |
||||
|
|||||
h2o |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
кстати!
как предложил Snowy, так не универсально получается, т.е. нужно под каждую конфигурацию отдельно компилировать, либо для всех копий испоьзовать один и тот же ключ дешифровки! а как сделать чтобы всё кодировалось ключём - ID компа? может другие варианты решения есть!!! люди, хелп!!! --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: нет Всего: 484 |
Нет конечно. В том-то и дело, что ключ состоит из 2-х частей. 1 - я складывается из параметров компьютера. 2 - я серийный номер для компьютера Вместе они дают ключ, которым информация декодируется на любой машине. А как этого добиться - алгоритмов много. |
|||
|
||||
h2o |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: нет Всего: 1 |
прошу прощения за мой тупизм, но, сколько не пробую-никак не могу реализовать! вродебы Snowy всё нормально обьяснил, и схему я понимаю и представляю, но вот знаний нехватает чтобы это в делфе реализовать! закопался в теории, а примеров найти немогу, чтобы посмотреть как реализовать!!!
добрые люди, если есть у кого примеры, запостите их тут плиз! --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
ConstantinXXX |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 246 Регистрация: 27.5.2006 Где: U.S.A. :-) Репутация: нет Всего: 0 |
Впринципе можно заблокировать все программу, После проверки кода прога разблокируется, если код декодирован неправильно то прога неразблокируется или т.п.
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info |
|||
|
||||
Rrader |
|
|||
Inspired =) Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: нет Всего: 191 |
Создавайте все компоненты динамически, и желательно, чтобы компоненты для ввода данных не обслуживались API - т.е. были графическими
|
|||
|
||||
nerezus |
|
|||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
LUA
|
|||
|
||||
takedo |
|
|||
Опытный Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Можно я тоже выскажусь?
на мой взгляд излишние алгоритмы шифрации ни к чему. Почему? Да потому, что крутой хацкер сидит в асме и ищет тот самый условный переход: если проверка прошла, то... если нет, то... Самое смешное заключается в том, что ему и декодировать не надо ! Поэтому, я думаю так: 1) делайте функцию проверки инлине подставляемой, чтобы вызов её осуществлялся не по одному и тому же адресу; 2) если уж программа не прошла проверку, то ни в коем разе не делайте так: ::AfxMessageBox("Проверки не пройдено",MB_OK); почему? а) вы дали наводку на вызов функции AfxMessageBox, что будет обязательно увидено в вашем екзешнике б) вы дали наводку в виде текстовой строки "Проверки не пройдено", которая так и будет видна в исполняемом файле (я просто сам случайно, не зная никакого асембелера поламал одну демо версию, в которой было ограничение количества элементов 15000, я просто в екзешнике поменял в hiew это число на другое и наслаждался полноценной версией!! Почти.) в) никогда просто не делайте упра
Таким образом, программа должна работать в идеале по другим, кривым алгоритмам(сами решайте а оно вам надо?). 3) лучшая защита - это ключ, который создан либо вами, либо вашим другом. Главное, чтобы протокол обмена между ключом и программой был известен только вам, ну и если протокол нестандартный - все ок. 4) для того, чтобы 3) конкретно работало, можно защититься хоть чуть чуть от дизассемблирования, например StarForce, который в принципе эмулируется частенько, но не дает дизассемблировать до понятных вещей. Ну в общем то и все. Почему же я это написал? Да потому, что сам сейчас об этом усиленно думаю -------------------- я не гольфист - я хоккеист |
|||
|
||||
RedHat |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 28.3.2006 Репутация: нет Всего: нет |
ты сам решил вопрос с защитой!! в том то всё и дело что крякер как выразился takedo не ищет методов шифрования !! он ищет тот самый переход jz или jnz который ведёт на demo или Full в программе что бы его изменить и его ни как не волнует как проходит шифрования ключа если он конечно решил не останавливатся на патче!!! Защита основанная на характеристиках железа тоже не очень!!! хотя если данные по железу являются кодом для распаковки - вот это реальная вещь (прям как электронный ключ). Вот тока юзер проапгрейдится и все... после прочтения статей по защите программ стало ясно что если ктото хочет взломать программу и у него есть достаточный опыт тот её взломает!!! предложения использовать серийный номер = часть программы. Юзер вводит серийный номер, программа использует этот номер для вычисления адреса процедуры, которая делает программу полной версией. Или к примеру в серийнике находятся части кода процедуры, или даже сама процедура регистрации в закриптованом виде. в этом случае без СН в программе просто не будет не хватающих байт для полной версии и крякеру будет ну очень сложно придумать их |
|||
|
||||
Antonimus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 12.1.2007 Репутация: нет Всего: нет |
Пустое это все! Если что-то попадает в память компьютера (в зашифрованнои виде или нет), все становится достоянием хакера, потому что под дебагерами все видно как черным по белому. А зашифрованные фрагменты Вы хакеру сами же и расшифруете своей же программой в один прекрасный момент, потому что в этот самый момент эти фрагменты должны быть выполнены, а в зашифрованном виде их выполнить нельзя. Так дождавшись расшифровки фрагмента хакер его сохраняет расшифрованным и блокирует функцию расшифровки. После этого программа будет работать лучше и быстрее, чем защищенная. Вобщем, такого рода защиты называют пятиминутками (утрированно конечно). Сам я пользую защиту USB-ключами "LOCK". Они позволяют запрятать во внутренней памяти до 256К программного кода, который не читается из ключа, а выполняется прямо внутри ключа. Вот это действительно защита. Программа (достаточно большая ее часть) вообще в комп никогда не попадает, поэтому хакеру и ломать нечего. Единственный вариант - разобраться по потоку данных через USB и по куску кода, который остается в компе, что прога делает и написать аналог. Не крутовастая ли задачка? Если интересно, могу ссылку на доку по ключам скинуть.
|
|||
|
||||
Alex99 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 13.2.2007 Репутация: нет Всего: нет |
Может этот ключ спасёт вас ?
Senselock EL - www.senselock.ru В него можно поместить часть вашей программы и она будет выполняться врямо внутри ключа. При грамотном использовании получится практически идеальная защита. |
|||
|
||||
bartram |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
Дороговато для рядового пользователя, годится только для защиты серьезных и дорогих программных продуктов. Это сообщение отредактировал(а) bartram - 9.3.2007, 10:22 |
|||
|
||||
Alex99 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 13.2.2007 Репутация: нет Всего: нет |
Ну естественно программу ценой в 50-100$ защищать железкой невыгодно. А вот если программа стоит хотя-бы 200$ то железка уже не повредит. |
|||
|
||||
Antonimus |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 12.1.2007 Репутация: нет Всего: нет |
Этот ключ вряд ли кого-то способен спасти... Часть программы в него засунуть можно, только работать она не будет, или такие тормоза получатся, каких не было на "дедушке Z80". Про идеальную защиту вообще здесь можно забыть, так как этот дивайс будет решать элментарное квадратное уравнение дольше, чем Вы на листке бумаги с ручкой в руке.
Отчего же дороговато? Напротив, очень дешево! Допустим, Вы продаете свой софт по одной копии в месяц. Далее, Вы покупаете этот супердивайс в количестве 1 штуки (на весь продаваемый софт, так как использовать Вы его не будете). Через год затраты на данную защиту упадут в 12 раз, соответственно, через 2 года - в 24 раза. Теперь поделите стоимость дивайса на 12, 24, 36, и т.д., и Вы поймете, что по цене данная защита является самой выгодной. |
||||
|
|||||
nerezus |
|
||||
Вселенский отказник Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Отвечу исходя из теоретической части, предполагая, что ключ оснащен арм-процессором.
Да и куски можно большие в него зашить - тогда не получится переписать их(т.к. надо будет много человеческих ресурсов, проще купить) Единственный способ - расковырять ROM. |
||||
|
|||||
hijaq |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.4.2007 Репутация: нет Всего: нет |
Очень занятные выводы. Интересно, на основании чего они были сделаны? У меня есть два предположения: это ничем не обоснованное голословное утверждение или не умение разрабатывать системы защиты, их логику, взаимодействие с программой. В обоих случаях это о многом может сказать потенциальным клиентам того продукта, который вы таким интересным способом рекламируете здесь. Разработать качественную защиту можно и на ключах класса Guardant Stealth III/Hasp HL, у которых нет возможности использовать свой код, просто в случае с Senselock'ом (16-битный процессор, работающий на скорости 16мгц, что в два раза быстрее моего первого компьютера ЕС1842, который вполне мог выполнять неплохие вычисления при правильном подходе) - таких возможностей на порядок больше. Скорость выполнения кода внутри ключа не играет какой-то особенной роли при условии того, что защиту разрабатывают люди, которые понимают чем они занимаются и для чего.
Выделенный фрагмент вообще уникален своей логичностью. Покупаем и не используем. Пусть лежит. Правильно. На вашем месте, я бы вообще это сделал лозунгом рекламной компании
Расковырять ROM у atmel'ей - да, вполне реально. У чипов, использующихся в смарткартах (используются в ключах Senselock) - весьма сомнительно. |
||||||
|
|||||||
Antonimus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 12.1.2007 Репутация: нет Всего: нет |
Конечно же это все "голословно", тем более я и понятия о защите никакого не имею. Где уж нам уж выйти замуж! Только вот уже достал дешевый пиар сенселока на всех сайтах, где это только можно. Хиловатая реклама... Слишком уж навязчива. Типа "запорожец-машина-зверь, а мэрс отдыхает!" |
|||
|
||||
Alex99 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 13.2.2007 Репутация: нет Всего: нет |
Antonimus: Простите, а Вас кто-то заставляет читать рекламу ? Не нравится - не читайте.
P.S. И еще дам один совет на будущее. Есть такое понятие - "корпоративная этика". Так вот рекомендую изучить этот вопрос и придерживаться в дальнейшем определённых морально-этических норм, как по отношению к своим знакомым, так и по отношению к совершенно незнакомым Вам людям. Особенно хочу подчеркнуть что это касается ведения бизнеса и грамотного позиционирования деловых отношений. |
|||
|
||||
hijaq |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.4.2007 Репутация: нет Всего: нет |
Тогда странно, почему вы так болезненно реагируете на все упоминания ключей Senselock где-либо, тем более лично мы никакого повода вам для этого не давали и ни разу даже не упоминали о вас? То, что вы не умеете вести себя как взрослый и адекватный человек, и всё ваше общение (и это не дружеские посиделки на кухне, между прочим) строите на уровне подростка, пишущего в фидо (эхоконференции такие были популярные до массового появления интернета, если кто не знает) - уже стало понятно всем. На все ваши однотипные лозунговые "претензии" вам были даны ответы, после чего вы исчезаете и появляетесь в новом месте с абсолютно теми же лозунгами. Никто не скрывает ни скорость работы ключей Senselock, ни какие либо другие параметры, эти данные опубликованы у нас на сайте вместе со всей остальной документацией и информацией. Те, кого это устраивает - заказывают у нас ключи и создают на их основе защиту. Если кто-то не может или не хочет сам это сделать - они заказывают создание защиты нам. p.s. Да, и о защите вы действительно имеете весьма смутные представления. Любой разбирающийся в предмете никогда не стал бы делать утверждения, подобные вашим, это очевидно. |
|||
|
||||
NiCketT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
Я хочу сделать типа защиту к своей проге. Слышал что-то про HardwareID. Обьясните плиз что оно такое и как его получить? Гдето в реестре надо искать? Может както можно серийный номер процессора получить или еще что-то?
ЗЫ. Прога простенькая (думаю по 1$ продавать) так что в изощренной защите не нуждаюсь. Мне подойдет чтото типа regkey=md5(hardwareid+секретное_число) |
|||
|
||||
NiCketT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.9.2007 Репутация: нет Всего: нет |
сделал вот-так
|
|||
|
||||
mmvds |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 230 Регистрация: 22.12.2007 Репутация: нет Всего: 6 |
Как вариант хочу предложить способ, которым защищал свой проект (на Delphi).
Защита на основе mysql сервера, расположенного в инете (по сути - лицензионный сервер). Сразу оговорюсь, подойдет не для всякого проекта, т.к. для запуска программы потребуется выход в интернет. Данные в клиенте хранятся в зашифрованном виде, без ключа расшифровки работа не возможна. Далее - создал базу mysql с разрешенными серийниками (их генерация - отдельная тема). Написал админку на php для добавления/удаления/блокировки серийников. И небольшой скрипт авторизации - от клиента получаем хэш введеного серийника, он сверяется с таблицей активных серийников и если все ок, то отсылаем ключ расшифровки данных клиенту, если нет, то код ошибки, типа зарегистрируйтесь и т.д. Собственно говоря это все. Да, забыл сказать, алгоритм шифрования взял за основу один из известных, но немного доработал, чтобы осложнить брутфорс. Также для большей стойкости от крякеров запаковал фемидой - на момент написания проекта одним из лучших протекторов. Достоинства метода: Взлом проги сильно затруднен (понадобится ломануть и лицензионный сервер). Есть возможность блокировки краденых серийников. Недостатки: Серийник могут банально украсть и растиражировать (пока контролируем только с пом лиц. соглашения ) Требуется подключение к интернету. В случае отказа работы лиц. сервера не могут работать даже лицензионные пользователи. Как вариант можно создать дублирующий лиц. сервер. P.s. Буду рад выслушать любую критику/проколы данного метода. P.p.s. Исходники всего проекта к сожалению предоставить не могу, только отдельные части, если кому надо. |
|||
|
||||
dumb |
|
|||
sceloglauxalbifacies Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
после получения валидного серийника и первой расшифровки, данные дампятся в открытом виде, код расшифровки блокируется и программа распространяется в варианте "инет для работы не нужен".
|
|||
|
||||
W4FhLF |
|
|||
found myself Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
dumb, +1
Можно хранить на сервере часть критического функционала(какую-нибудь процедуру, скажем), тогда задача слегка усложняется. Возможно, придётся даже Фемиду снять(нетривиальная задача). Хотя и сама по себе фимка не очень-то стабильный протектор + чтобы грамотно запаковать и дальше всё работало надо кучу времени потратить. Но я не понимаю, нафига все эти костыли? Кому это всё надо? Давно пора понять, что можно насувать сотню anticrack трюков и в конце-концов сделать взлом просто нецелесообразным, потеряв при этом в скорости/простоте/стабильности/популярности(да да, господа, зачастую именно после появления кряка программа становится популярной и с последующими обновлениями прибыль продавца значительно возрастает). Короче, защита программы - комплексная область, которая не ограничивается только лишь усложнением взлома по средствам всяких костылей, нужно анализировать многие аспекты. Это сообщение отредактировал(а) W4FhLF - 23.12.2007, 13:14 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
mmvds |
|
||||
Бывалый Профиль Группа: Участник Сообщений: 230 Регистрация: 22.12.2007 Репутация: нет Всего: 6 |
Да, но для этого понадобится серийник (хотя обычно это не проблема - банально попросить у легального пользователя) и способ обойти анти-дамп фемиды.
Костыли нужны - совсем без костылей - ни как. Идеальной защиты не существует? Это да, но например, покажите мне хоть один кряк или кейген к касперу, его нет (поправьте, если ошибаюсь), потому как защита на очень высоком уровне, есть только краденые ключи, которые с успехом заносят в черный список. Кстати, спасибо за идею - новые данные, загружаемые с сервера шифровать другим ключом, меняющимся с каждым обновлением, клиенты с засветившимися серийниками обновляться не смогут. |
||||
|
|||||
W4FhLF |
|
|||
found myself Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
Почему же тогда самые успешные продукты имеют примитивную защиту? Не думал над этим? Видимо рынок всё-таки сущность достаточно сложная, а в крутых защитах нет смысла. Для Каспера ненужен кейген или кряк, ибо это программный продукт актуальность которого очень сильно зависит от новизны его баз. У Каспера вообще нет никакой локальной защиты, просто в случае неавлидного ключа тебе никто не даст обновиться, вот и всё. А так его функционал нисколько не ограничен. Или ты никогда не слышал об альтернативных серверах обновления? Как думаешь тысячам людям удаётся обновляться без ключа вообще? Неудачный пример. Зато я знаю несколько примеров, где грамотно реализованная защита(навесные протекторы, привязка к железу, продажа ТОЛЬКО юридическим лицам ПО ТЕЛЕФОНУ) не мешала появляться программам на паблике с отломанными протектором и привязкой. Просто в этих продуктах была заинтересованность, вот и всё. Кстати, я бы вряд ли купил программу, где защита реализована подобным образом(описанным тобой), только в случае острой необходимости и уникальности продукта, ибо я 1) недоверчив и очень требователен к защите системы; 2) считаю, что подобная защита характеризует разработчика, как жадного до мелочи человека незаботящегося о своих пользователях, из-за этого:
Это сообщение отредактировал(а) W4FhLF - 23.12.2007, 17:15 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
mmvds |
|
||||
Бывалый Профиль Группа: Участник Сообщений: 230 Регистрация: 22.12.2007 Репутация: нет Всего: 6 |
Да, но насколько я знаю (пользуюсь старой доброй 5 версией ), проверка ключа у каспера проходит не на сервере, а на клиенте, после скачивания обновлений с черным списком. На альтернативных серверах черный список зачищен, так что вообще без ключа обновляться не получится. Честно говоря, не понимаю, что им мешало организовать проверку ключа на сервере, размер небольшой, предавать через защищенный протокол.
Если не ошибаюсь, защита Steam игрушек организована по аналогичному принципу - без стим аккаунта на стим сервер не законнектиться, а между тем легальных пользователей стима - сотни тысяч. Про отказ лицензионного сервера уже писал - дублирование на другом хостинге. Честно говоря защиту писал больше из энтузиазма - написать не очередную курсовую прогу, а что-то более-менее серьезное. |
||||
|
|||||
W4FhLF |
|
|||
found myself Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
Суть в том, что для такого ПО этот вариант является наилучшим решением, ибо АВ без баз - вещь бесполезная. Сколько ещё типов ПО так же сильно нуждаются в данных из интернета? Думается, что не так много. Полезеность информации на винтах геймров стремиться к нулю. Я, допустим, всегда запрещаю доступ в сеть программам, которые в этом не нуждаются(Winamp, NERO, etc), для остальных созданы жёсткие правила, а если, скажем, какой-нибудь анализатор логов Oracle(не знаю, что у тебя за ПО было) при каждом запуске лезет куда-то, а запретив ему это делать, вообще перестаёт работать, думаешь это многим понравится?
Отлично, раскрутил ты таки свою программу, у тебя множество пользователей купивших её за свои кровные. Тут появляются конкуренты и заказывают DDOS твоего домена. Любой хостинг оказывается в дауне ессно и все твои пользователи лишаются возможности пользоваться купленной ими программой на неопределённый промежуток времени. Я думаю многие побегут к твоему конкуренту и купят у него аналог, в любом случае большинство откажется пользоваться твоим продуктом. А если эта программа, скажем, составляет отчёты по обороту средств в фирме? Фирма несёт ущерб и подаёт на тебя в суд(в целом, любой пользователь может это сделать) и преспокойно выигрывает дело, ибо потери она понесла из-за нессответствующего заявленному качества программы и им абсолютно плевать, что у тебя просто схема защиты кривая, они покупали программу, чтобы та работала, как было заявлено. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Earnest |
|
|||
Эксперт Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: нет Всего: 183 |
Ну это ты загнул... практически в любом коммерческом софте в лицензионном соглашении есть слова типа "продается as is" и "никакой ответственности не несет" Есть еще один аспект разработки защиты, о котором почему-то никогда не говорят: приставленная сбоку защита - это ерунда, а встроенная в значимый функционал - очень осложняет дальнейшее сопровождение и развитие этого функционала, поскольку структурно его портит. Ну не нужна она там с точки зрения основного дизайна. А все, что не нужно, портит и осложняет. Лично меня это всегда больше всего напрягало: стараешься делать дизайн и код прозрачным, а в случае защиты нужно делать все наоборот, чтобы враг не догадался... Исполнение куска кода в ключе - здорово, конечно, когда оно заработало и на веки веков, аминь. А отладка? А изменения-сопровождение? А демо-версии, наконец? Да, все это можно сделать, но какой, блин, лишний геморрой! ИМХО, не стоит пытаться придумать бронебойную защиту: достаточно, чтобы любой подросток гвоздем не мог расковырять. Профессионал - вскроет, вопрос денег и времени, если оно ему надо будет. Лучше тратить ресурсы на развитие программы. Если стоимость и полезность программы будут сбалансированы, то пиратские копии послужат рекламой, и бог с ними. Это, конечно, относится только к професиональному софту (который покупают большие компании). Им - проще купить, чем тырить по мелочи. Потому, кстати, всякие Автокады и защищены так себе. А частные пользователи погоды не делают. С софтом чисто домашнего применения история совсем другая, конечно. Тут - либо придется быть альтруистом, либо уходить в корпоративный сектор -------------------- ... |
|||
|
||||
KLeonid |
|
|||
Entropy Профиль Группа: Участник Сообщений: 51 Регистрация: 5.7.2007 Где: Shpongleland Репутация: нет Всего: 1 |
ИМХО, защита с сервером будет лучше в варианте RPC, а не серийников. Т.к. серийник можно элементарно заснифить, а если траф шифруется - все так же выдернуть дебагером на стадии исполнения.
Вызов удаленных функций с одной стороны усложнит взлом, а с другой сделает кучу проблем для продавца в виде необходимости иметь множество серверов и постоянно их мониторить. Плюс сложные удаленные функции будут грузить сервер, а простые - легко понять принцип работы, дописать локально и "подшить" к проге. Вот если бы придумать алгоритм постоянного изменения кода самой программы на лету с переписыванием частей екзешника или дллок. Чтоб часть программы постоянно меняла точку и алгоритм проверки валидности, и являлась неотъемлемой частью работы основной части программы. Мне бы вот придумать как защитить PHP код без всяких зендов, чтоб хоть зашифровать или сделать работоспособным только на 1 сервере... |
|||
|
||||
W4FhLF |
|
|||
found myself Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
А в случае с RPC на локальный комп ничего передаваться не будет чтоли? RPC - это всего-лишь механизм передачи, суть защиты от этого не меняется. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
mmvds |
|
||||
Бывалый Профиль Группа: Участник Сообщений: 230 Регистрация: 22.12.2007 Репутация: нет Всего: 6 |
Право на выполнение RPC тоже определяется клиент-сервером.
+1 Можно присылать и шифрованные экзешники Можно и шифровать части на лету, но сам алгоритм расшифровки все-равно останется не шифрованным. Вот только на самом деле, стоит ли так заморачиваться, это же не военная разработка в конце концов
Не скажу, что я специалист по PHP, скорее его изучение было необходимостью. В своих кодах делаю проверку абсолютно всех используемых параметров: 1) Считываю из сессии все переменные, полученные до данного скрипта. 2) Перед проверкой изменений или добавления новых параметров пропускаю их на очистку от спец символов. 3) Затем проверяю на возможные значения с помошью регулярок. 4) После выполнения скрипта опять же все переменные записываю в сессию. Если интересуют примеры, стучись в асю |
||||
|
|||||
_El_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Прочитала тему и не вижу к чему же таки пришли)). Передо мной стоит так же задача защитить программу (программа написана на паскале под MS-DOS). Програма серьезная и защиту хотелось бы соответствующую. Хотела попробовать динамическое шифрование, но не знаю как оно реализовывается.
|
|||
|
||||
dumb |
|
|||
sceloglauxalbifacies Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
что за несерьезные люди поручили тебе делать серьезную защиту "серьезной" программы?
компетенция твоя в вопросе защиты, прости, никакая. первый пост был пол-года назад, за это время никакого прогресса в решении проблемы не видно: какие-то cpuid, "обфускаторы для паскаля", зато гордо отвергнут вариант навесного протектора за "несерьезность"(примечание: для компилируемых языков обфускация имеет смысл только на уровне машинного кода, чем, собственно, и занимаются навесные протекторы, вкупе со всякой анти-отладочной "мишурой"). да и серьезность самой программы "на паскале под MS-DOS" тоже представляется весьма сомнительной... хоть какие-то обоснования против "переезда" на более свежие ОС имеются? есть вариант - использовать какой-либо железный ключ(hasp,hardlock,guardant,sentinel,...) + envelope от производителей, но сдается, что люди, желающие навариваться от продаж, не хотят вкладывать ни пенни в защиту, так что это тоже не вариант. |
|||
|
||||
_El_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Программа под DOS потому что написана и используется в гос. структуре, где убедить перейти на другую ОС очень трудно.
|
|||
|
||||
dumb |
|
|||
sceloglauxalbifacies Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
опа. тоже вариант. не учел.
возьми отсюда какой-нибудь HackStop и не мучайся. тот народ, который еще помнит, как "запускать отладчик" в досе, давно уже не интересуется этим самым "запуском"... |
|||
|
||||
_El_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
просто взять HackStop не пойдет, т.к. защита проги это мой диплом)
|
|||
|
||||
Competitor |
|
|||
Опытный Профиль Группа: Участник Сообщений: 440 Регистрация: 23.3.2005 Где: Tula Репутация: нет Всего: -1 |
я не понимаю, как это вообще будет работать. Юзер должен отослать серийник изготовителю ПО, и получить от него ключ, которым он расшифрует этот массив констант. Откуда изготовитель ПО возьмет ключ для расшифроки этого массива?? Поясните пожалуйста, буду очень благодарен. |
|||
|
||||
PavelSafonov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 29.1.2015 Репутация: нет Всего: нет |
Для надежной защиты программы используйте StubIt, как работает эта система защиты:
часть жизненно важного кода приложения вырезается прямо из бинарного кода и отправляется на сервер, после чего исполняется только на сервере, клиенту возращаются только результаты, вырезанный код всегда остаётся на сервере. Взлом такой защиты сводится к восстанавлению вырезанных кусков по данным - фактически атака на чёрный ящик, на практике не берётся. |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Технологии защиты программного обеспечения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |