| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Технологии защиты программного обеспечения > Антикрэкирское решение |
| Автор: Ak47black 25.9.2006, 20:46 |
| Здравствуйте интересуюсь тем как что-бы уберечь свою программу в какой-то степени от взлома ,а конкретнее у меня следуший вопрос. Имеються-ли какието готовые решения как подвесить отладчик при нажатии кнопки Register в моей проге (конечно не все, но хоть некоторые)? |
| Автор: Matematik 25.9.2006, 20:51 |
| Захотят взломать, не поможет |
| Автор: Romikgy 25.9.2006, 20:55 |
согласен на все 100% |
| Автор: Ak47black 25.9.2006, 21:01 |
| Ну понятно что софт-айсом можно взять любую прогу. Только все зависит от времени. Я хочю повысить время взлома. |
| Автор: Romikgy 25.9.2006, 21:14 |
почти!!!! воспользуйся шифрованием , плюс привязка ко времени (и не стацинарного , а разности) |
| Автор: Snowy 25.9.2006, 21:27 |
| Тебе сюда: "http://forum.vingrad.ru/index.php?showforum=125" Добавлено @ 21:33 А решение простое. При нажатии кнопки "Register" не делать никаких действий, кроме сохранения кода, а лучше его производной. Абсолютно никаких. Это усложнит задачу - если нет проверки при нажатии кнопки, то совершенно непонятно где ловить. В программе не делать единой точки проверки кода, а разбросать проверку разных частей кода по программе. Вот тогда точно опухнешь искать по всей программе. Найти одно место можно. Искать все... Программа того не стоит. Это не винда и не фотошоп Для большей надёжности - наделать производных от частей ключа. Чем больше, тем проще запутать. Главное не запутаться самому |
| Автор: Coder 26.9.2006, 00:12 | ||
Snowy, что значит производная от кода? |
| Автор: Snowy 26.9.2006, 00:42 |
| Любой блок данных, полученный в результате преобразования исходных данных по заранее определённому алгоритму. Алгоритм может быть любой - свой выдуманный или стандартный. Неизменным должно быть одно - при применении алгоритма к одним и тем же данным, результат всегда должен быть одинаковым. То есть алгоритмы с элементом случайности не подходят. Например у нас часть кода "F0B9". Допустим применим простой только что пидуманный алгоритм: к каждому символу прибавим ещё один на еденицу больше. В результате работы алгоритма получим "F001BC9A". Вот такую преобразованную строку и использовать. Это и есть производная - на входе одни данные - на выходе другие. Результат всегда зависит от входных данных. Можем не выдумывать свой алгоритм, а взять стандартные типа CRC или MD5. То есть цель - использовать не сам серийный номер, а производные от него. |
| Автор: Akella 26.9.2006, 11:34 |
| а на кнопку повесь какую-нибудь "левую" введенных данных или даже не обязательно введеных, пусть эта процедура чего-то пишет в реестр или на диск, или какие-либо другие действия делает, ну ты понял.. |
| Автор: ne0n 26.9.2006, 16:01 |
| VMProtect нафига сделан? Не всякий опытный крякер с ним разберется. Виртуальная машина лутший вариант. Вот тебе и готовое решение. |
| Автор: drkot 26.9.2006, 18:55 |
| Главное чтоб система защиту не мешала нормальной работе программы. А то можно так защиту наворотить, что и прога работать перестанет. В половине случаев хватит простого алгоритма свертки ключа + проверки на режим отладки. Это создаст условия для покупки программы (достаточно продать один ключ и покатилось ...). Если же программа будет пользоваться популярностью то взломают обязательно невзирая на защиту (ReGet к примеру). ИМХО лучший вариант проверва подлинности через инет, но не всегда реализовать можно. Главное помнить, что взлом так или иначе сводится к замене 4-х байт |
| Автор: BUGOR 27.9.2006, 10:53 | ||||
Далеко не панацея, к тому же тормозит программу прилично. Ну и раскошелиться на него придётся.
Чем же он лучший? |
| Автор: Guedda 27.9.2006, 10:57 |
| Мне кажется, лучший вариант делать программу freeware, если не жадный, либо продавать её не как shareware, а как Demo. Т.е. делаешь демо версию без каких-либо функций, которые в свою очередь будут лежать в плагине, который пришлётся тебе после оплаты. |
| Автор: drkot 27.9.2006, 15:25 | ||
практически всегда есть проверка подлинности заключается в принятии решения да/нет вот там и замену надо делать.
до первой проданной. под одним серийником две программы не запустиш. + защита от генераторов серийников. |
| Автор: dumb 27.9.2006, 16:11 | ||
типовой случай "дурацкой" защиты. как правило заменяется один байт в инструкции(если она двухбайтная) условного перехода - либо 7x на EB, либо смещение на 0. короче, 4 байта - частный случай, причем не самый частый. если не используется "затычка"(hasp/hl/etc), то по-любому "до первой проданной". кто ж ее в сеть выпустит? в наше "военное" время уже почти любая домохозяйка имеет fw. это вообще, простите, гон маркетолога. или я отстал от жизни? - объясните мне что это. |
| Автор: Snowy 27.9.2006, 16:23 |
| Модератор: Перенесено из дельфи |
| Автор: LSD 27.9.2006, 16:40 | ||
Отказываться работать в таком случае. Ну и плюс есть класс программ которые просто нельзя не выпускать в интернет, те же прокси сервера. Кстати есть одина программа: Lan2net NAT Firewall, так вот она до сих пор не взломана. Что говорит о том, что защита была адекватна интересу к данной программе со стороны хакеров. |
| Автор: dumb 27.9.2006, 17:36 | ||||
зачастую такой вариант неприемлем. к прогам же, расчитанным на работу с сетью, причем именно с инетом, это, разумеется не относится...
угу. "неуловимый джо". там aspr стоит, и фактически только он и препятствует "залому". |
| Автор: ne0n 28.9.2006, 10:01 | ||
а панацеи и не существует. Нам же нужно защитить только процедуру регистрации, а не весь код программы. Если программа тогоо стоит то все окупиться, а если нет есть же бесплатные релизы. |
| Автор: BUGOR 29.9.2006, 11:14 | ||||||||||
Ты же сам говорил, что замена проверким всё решает. А кто мешает подделать данные, которые принимаются программой при чеке через интернет? А кто мешает изменить элементырный Jcc(конечно не всегда он есть), при неграмотной реализации проверка через интернет отламывается не сложней, чем if Check(name, key) then ok. Какой выход? Хранить часть критических данных на сервере через который идёт проверка и при тру результате возвращать эти данные в программу? Выход... до первой купленной(а скорее скарженной) версии.
Аспр снять не так сложно, туторов масса и в привате есть унпакеры для всех версий.
Понимаешь, если я напишу простой калькулятор и навешаю туда аспр со всеми функциями, потом выставлю цену 300 уе, то его тоже никогда никто не взломает, точно так же как и не купит.
Ну одну процедуру регистрации всё равно мало протектить, хотя я согласен, что даже две процедуры не слишком замедлят работу. Это конечно подходит для всяких шаровар за 19.99$, но если тебе надо защитить от кражи какой-нибудь уникальный алгоритм программы?
Приведу цитату: "... Ни один готовый протектор не поможет, так как за пару тысяч баксов тебе и вмпрот снимут, и ексекриптор отдеморфят." (с) PE386 |
| Автор: BUGOR 29.9.2006, 13:43 |
| Вообще, как показала практика ненужно писать крутейшую защиту, во-первых: 1. Программа не получит распространения. 2. Это может быть вовсе неоправданно. Возьмём тот же WinRAR, его защита ломается исправлением одного байта, и так было наверное с самых первыъ версий, тот же The Bat! тоже никак не защищён, зато это программы с мировым именем и я уверен их разработчики не беднеют с каждым днём, потому что, если у людей есть возможность - они покупают софт(жаль, что в Росии люди имеют такую возможность не часто,, для рядового американца проще вбить номер кредитки и получить ключ, чем вбивать запросы в гугл и тратить время на поиск), если нет возможности - используют крякнутый или не используют ничего, но если используют крякнутый программа постепенно приобретает популярность. Самый лучший вариант выпускать почаще апдейты в которых было бы что-то чувствительно иное в сравнении с другими версиями. |
| Автор: dumb 29.9.2006, 20:53 | ||
тут речь о том, что невзломанным lan2net остается только потому, что те, кто хотят - не могут, а те, кто могут - не хотят. опять же, afair снять крипту без валидного ключа нельзя, а чтоб достать его, нужен еще ряд мероприятий... в общем, нельзя не согласиться, что пока "защита" lan2net себя оправдывает. степень "нужности" не превышает степень "защищенности". так что совет по теме(который, впрочем, уже прозвучал вроде) - нащупать баланс. |
| Автор: RedHat 6.1.2007, 11:29 |
| Как сказал Snowy, самые действенное решение это при нажатие кнопки "Register" ни чего с введёными данными ни делать ни выдовать ни какие сообщения о неправельности СН а тупо сохранить их в памяти и запустить таймер который будет ждать определёного момента и начнёт формировать код проверки по кускам то есть код проверки СН разбросан по коду программы и куски начинают проводить определёные действия Например: После ввода СН окошко закрылось СН сохранён в памяти и пока пользователь работает с программой она потихоньку начинает собирать и проверять серийник ну и если он правельный то сохраняет его! в таком случае крякер устанет патчить программу так как проверок будет очень много ! |
| Автор: Guedda 8.1.2007, 12:26 |
А если он сразу после введения кода закроет приложение? |
| Автор: RedHat 8.1.2007, 13:06 |
| Guedda, ты так когда нить делал????? ну если даже закроет то придётся регить заново минус и при чём большой!!! можно так же использовать в качестве ключа часть/всю процедуру проверки в зашифрованном виде то есть в ехе отсутствует процедура проверки СН так как она идёт в самом СН и без рабочего СН крякеру практически не возможно будет взломать прогу. |
| Автор: Guedda 8.1.2007, 14:28 |
Да. Пытался. Испробовал различные варианты, и понял, что нифига не поможет ничего против опытного крякера. У меня есть идея по поводу антикрякинга - это полиморфизм. Добавлено @ 14:29 Но всё-равно и это не поможет |
| Автор: RedHat 8.1.2007, 14:42 |
| Guedda, да против хорошого крякера мало что поможет!!! |
| Автор: W4FhLF 8.1.2007, 17:07 | ||
А он и не будет её ломать. Скардят один ключик, раскриптуют участок и отломают простым патчем, твоя программа останется без всякой защиты. Или же будут распространять вместе с ключиком. Хватит предлагать уже давно известные всем идеи. |
| Автор: Antonimus 12.1.2007, 17:30 |
| Если программа стоит, чтобы ее защищать, то ничего из предложенного выше не поможет. Такие защиты снимаются в два счета, даже не хакерами. Если Вы уверены, что Ваша программа попадет в руки хакеру, то нужна крепкая защита, а значит аппаратная. При этом нельзя брать первый попавшийся ключ, так как он наверняка уже взломан и есть эмулятор, а значит защиту снимут за минуту. Есть ключи, для которых само понятие взлома является абсурдным. Мы сейчас их используем, даже хакерам предлагали $1500, чтобы взломали, но у всех ответ один - без вариантов, даже неизвестно с какой стороны подойти. Вобщем USB-ключи серии "LOCK". В инете по ним можно всю информацию найти. |
| Автор: Gogi 19.4.2007, 11:03 | ||
VMProtect на сегодняшний день ИМХО самое лучшее решение для защиты кода от взлома. Насчет пары тысяц баксов - это очень сомнительно, т.к. я знаю коммерческий проект, накрытый вмпротом, который ломали несколько профи около полугода. Так что решайте сами |