, а потом удивляться, почему тебя никто не понимает.
Да нет, откровенная хрень, это твои допущения. Допущения о том, что разработчик не в курсе, как работает асимметричка. О наличии одного единственного места, где делаются проверки. О том, что возможности защиты можно продемонстрировать простеньким крэкми. Вот это — хрень.
Здравствуйте, rudzuk, Вы писали:
R>Да нет, откровенная хрень, это твои допущения. Допущения о том, что разработчик не в курсе, как работает асимметричка. О наличии одного единственного места, где делаются проверки. О том, что возможности защиты можно продемонстрировать простеньким крэкми. Вот это — хрень.
Воу, воу! Я смотрю у тебя немного сантиметров наросло в нужном месте. Я так понимаю ты уже готов предоставить свой бинарник для теста чья хрень круче?
Здравствуйте, drVanо, Вы писали:
V> R>Да нет, откровенная хрень, это твои допущения. Допущения о том, что разработчик не в курсе, как работает асимметричка. О наличии одного единственного места, где делаются проверки. О том, что возможности защиты можно продемонстрировать простеньким крэкми. Вот это — хрень.
V> Воу, воу! Я смотрю у тебя немного сантиметров наросло в нужном месте. Я так понимаю ты уже готов предоставить свой бинарник для теста чья хрень круче?
Вот, ты либо не читаешь, либо смысл написанного от тебя ускользает.
Здравствуйте, rudzuk, Вы писали:
R>Вот, ты либо не читаешь, либо смысл написанного от тебя ускользает.
Чтобы смысл ускользал или не ускользал он (смысл) как минимум должен быть. А его нет, есть только твоя теоретическая хрень и ты почему-то боишься проверить свою хрень теорию на практике.
P.S. Предлагаю прекратить этот бессмысленный разговор, тем более что кроме отсутствия недостающих сантиметров тебе больше нечего предложить в качестве аргументов.
Здравствуйте, drVanо, Вы писали:
V> P.S. Предлагаю прекратить этот бессмысленный разговор, тем более что кроме отсутствия недостающих сантиметров тебе больше нечего предложить в качестве аргументов.
Когда смысл ускользнул, продолжать, действительно, нет смысла.
Здравствуйте, wantus, Вы писали:
W>Да, елки-палки. W>Разговор не о том, что несложные вещи не ломаются. W>Разговор о том, что их зачастую достаточно для того, чтобы по сети не плавали взломанные версии.
Знаешь, я вот иногда прихожу сюда (на форум программистов) и реально @хуеваю от того факта, что у многих здешних программистов напрочь отсутствует способность делать логические выводы даже по тем тезисам, которыми они же (эти самые тезисы) сюда (на форум программистов) и притащили. Давай я попробую разжевать весь тот бред, а также твои неправильные логические выводы, которые ты и твой коллега по цеху здесь напостили.
Добавить проверку подписи собственного exe (через WinVerifyTrust)
У начинающего крякера (этот такой 15-ти летний пацан, который прочитал пару статей Криса Касперски, пол статьи из журнала "Хакера", умеет запускать дебаггер и знает чем отличается условный от безусловного перехода) на отлом этой защиты у него уйдет минут 10. Почему этот способ по моему мнению полный шлак? Да потому, что даже минимальных знаний в реверсинге будет достаточно чтобы его обойти. А если учесть, что программист, который решил закодить этот способ убил на него час-два-три (чтение документации по WinVerifyTrust, сам кодинг, отладка и все остальные прелести), а крякер на эту "защиту" потратил всего 10 минут, то нужна ли эта защита? Думаю что нахрен не нужна, потому что программист за эти самые полчаса может написать какой-то полезный функционал, который в конечном итоге принесет ему реальные деньги, а не мнимую защиту от кряка.
Добавить еще несколько копий этой проверки — полных копий всего кода
Опустим некоторые технические моменты написания такой полноценной проверки целостности образа в памяти, на которые я намекал
. Просто скажем, что по сравнению c п.1 квалификация программиста, который самостоятельно будет реализовывать подобный функционал, должна быть гораздо выше, а вот квалификация крякера будет тойже самой (ну может быть он найдет еще какую-нить статейку про то как в отладчике работают бряки на доступ к данным) и ему будет достаточно пропатчить всего одну функцию, которая считает эту самую CRC. Итого — на имлементацию, отладку и прочие прелести у программиста ушел день/неделя/месяц, а у 15-ти летнего пацана, который ждаст фор фан запустил вашу программу в отладчике, в сумме с п.1 ушел максимум час. Почему этот способ по моему мнению полный шлак? Читай выводы п.1.
Могут запатчить сам WinVerifyTrust. На это добавляем вызовов WinVerifyTrust с кривыми параметрами и смотрим, что он таки возвращает ошибку.
Ну если 15-ти летний пацан не дурак, а он не дурак и тоже умеет читать документацию по WinAPI, то он пропатчит проверку результата так, чтобы в случае критической ошибки код этой самой ошибки вернулся в вызывающий код.
4. Можно все эти проверки отключать, если похоже что программа бежит под дебагером — IsDebuggerPresent, PEB.BeingDebugged, NtQueryInformationProcess(..., 7, ...), etc. В принципе все хорошие дебагеры умеют притворяться, что их нет, но это простая в изготовлении какашка и подложить её не мешает.
15-ти летний пацан уже решил пару крякмиксов и тоже знает про IsDebuggerPresent, PEB.BeingDebugged, NtQueryInformationProcess. Почему данный способ полный шлак? Потому что, программист еще даже не закодил все это дело в свою программу, а 15-ти летний пацан это все уже сломал, скачав ScyllaHide.
Типа окопная партизанская война с целью измождения противника.
Подведем итоги окопной войны? С одной стороны в "окопе" сидит программист, который уже потратил кучу времени на имплементацию твоего бреда, при этом не написал еще ниодной строчки полезного для его программы (своих пользователей) кода, а с другой стороны в "окопе" сидит 15-ти летний пацан, который только вчера вживую увидел программу, а сегодня ради прикола, потратив на порядок меньше времени, уже все это взломал.
Нужна ли ТС-у такая защита? Думаю что нахрен не нужна. Любой думающий своей головой шароварщик прекрасно понимает, что его время гораздо ценнее, чем время 15-ти летнего пацана, и что лучше это время потратить на написание полезный функционала, чем на "мега крутую защиту от Сифона и Бороды вантуса и рудзика".
Ну а теперь на десерт самый твой последний тезис:
Разговор о том, что их зачастую достаточно для того, чтобы по сети не плавали взломанные версии.
Кто-то мне может показать логическую связь между тем, что программист на имплементацию всего это бреда потратил неделю, а 15-ти летний пацан потратил на взлом программы 3 часа, с тем фактом, что по сети вдруг перестали плавать взломанные версии? Я вот например вообще не вижу никакой связи. Если даже 15-ти летний пацан с нулевым опытом смог справиться с "задачей", то взломанные версии будут плавать везде, да еще как! Хотя это скорее всего к тому вопросу, почему у некоторых здешних обитателей иногда напрочь отсутствует какая-либо логика (некоторые ее отсутствие прикрывают недостатком сантиметров
, что при проверке целостности нет смысла проверять весь образ, достаточно ограничиться критически важными областями, и что позиционно-независимый код написать не сложно. Весна, что ты делаешь...
Здравствуйте, TailWind, Вы писали:
TW> Он, конечно, не совсем культурно себя ведёт TW> Но он прав
Да не, он расказывает сказочки о 15-летних ксакепах умножающих труд программиста на ноль за десять минут
Сейчас даже просто использование нативной компиляции уже является достаточным препятствием для "юных дарований". Все потому, что они привыкли "ломать" софт, для которого есть декомпилятор, и даже просто использование примитивной обфускации ставит их в тупик. Я, если что, говорю о 95% интеллектуального большинства. Более того, не так давно читал интервью с антивирусным аналитиком из одной очень известной конторы, так он сокрушался, что очень хреново анализировать малвару написанную на Go т.к. она компилируется в натив, а вот малвару под дотнет ему анализировать нравится
TW> Делал такую защиту: TW> — проверка CRC exe файла (не в памяти, а на диске) TW> — отложенная по таймеру
TW> Ну и опытные хакеры надо мной поржали, взломав за день
Перед опытным и упорным реверсером не устоит ни одна защита (его вмпротект — тоже), это нужно понимать. Но и цели делать непробиваемую защиту нет, и это тоже нужно понимать. Мой софт с 2016 года в сети. Нет, ни кряков, ни кейгенов. Несколько слитых ключей и все. Софт дороже $300. Но это все потому, что я Неуловимый Джо (предвосхищаю, на всякий случай).
Здравствуйте, rudzuk, Вы писали:
R>Сейчас даже просто использование нативной компиляции уже является достаточным препятствием для "юных дарований".
Вот оно че, Михалыч! Нативная компиляция — это все что нужно знать об уровне знаний нашего иксперта! Я ему про релоки рассказываю, а он мне про C#. Теперь все встало на свои места. Вопросов больше не имею.
Здравствуйте, drVanо, Вы писали:
V> Вот оно че, Михалыч! Нативная компиляция — это все что нужно знать об уровне знаний нашего иксперта! Я ему про релоки рассказываю, а он мне про C#. Теперь все встало на свои места. Вопросов больше не имею.
Мде. Качай понималку написаннго, оно в жизни помогает.
Здравствуйте, rudzuk, Вы писали:
V>> Вот оно че, Михалыч! Нативная компиляция — это все что нужно знать об уровне знаний нашего иксперта! Я ему про релоки рассказываю, а он мне про C#. Теперь все встало на свои места. Вопросов больше не имею.
R>Мде. Качай понималку написаннго, оно в жизни помогает.
Я тебе просто дам совет на будущее — перед теми как залезать в спор со своим икспертным мнением, соизволь хоть немного изучить матчасть. В приличном обществе аргументы типа "качай понималку" не канают.
Здравствуйте, drVanо, Вы писали:
V> Я тебе просто дам совет на будущее — перед теми как залезать в спор со своим икспертным мнением, соизволь хоть немного изучить матчасть. В приличном обществе аргументы типа "качай понималку" не канают.
Так это и не было аргументом. Это было пожелание человеку, который, очевидно, не понимает смысла написанного.
з.ы. Кстати, ты еще не все мои сообщения заминусовал. Не сдерживай себя!
Здравствуйте, Черный 😈 Властелин, Вы писали:
ЧВ>пришел к выводу, что те кто не купят ваш софт в любом случае воспользутся или левой кредиткой или патчем. Да ну и пусть, c них все равно денег не получить. А те кто могут купить прогу, покупают ее как и раньше.
У меня сложилось еще более радикальное мнение: до некоторого порога цены (для рядового пользователя это где-то $30-50) даже наличие ключей практически не влияет на продажи, а уж наличие шифрования — и подавно.
Сужу по своему основному продукту, в котором нет вообще никакой защиты (купившим лицензию дается ссылка на скачивание полной версии). Найти в сети пиратку — раз плюнуть, они валяются повсеместно, но количество продаж всегда четко коррелирует с количеством показов в гугле. То есть, народ или опасается пираток (и обоснованно, как известно), либо ему банально в лом заниматься криминалом ради экономии суммы, примерно равной продуктовой корзине на один-два дня.
Отсюда вывод: основная ценность ключей — не в борьбе с пиратством, а в возможности эффективно блокировать лицензии после возвратов, а также блокировать кардеров.
Уже много лет собираюсь приделать к этому продукту какие-нибудь примитивные ключи (о шифровании кода даже не задумываюсь — нет смысла), но все руки не доходят.
Здравствуйте, Khimik, Вы писали:
K>Какой шифратор лучше выбрать — Execryptor или есть что-то новое?
Для нативного кода наверное еще можно как-то обходится без протектора, но если это что-то типа Java или .NET и вы собираетесь продавать коммерческий продукт — то разорвут на части, какую бы вы нишу не выбрали. С одной стороны грызут кул-хацкеры, с другой стороны — конкуренты. Как только у вас рождается что-то более-менее востребованное и популярное — вся эта братия быстро налетает как мухи на мёд.
Кто-то скажет — да ну его, пиратство — это бесплатная реклама. Отчасти это так, но только до тех пор пока не начинается срез дохода. Вот тогда-то и приходится суетиться, но лучше решение этой ситуации закладывать сразу пока вас не сдоили за бесплатно.