Size: a a a

2021 May 14

AS

Anatoly Shirokov in Qt
обфускатор для C++? а в чем идея?
источник

m

mefest in Qt
обфускатор помешает только дальнейшие доработки по обфусцированому коду.
источник

р|

рI |q in Qt
Посмотрите на не-технические инструменты защиты интеллектуальной собственности. Если софт нишевый и есть очень небольшое число тех кто может его использовать - информация о все  организациях-пользователях может быть вам легко доступна.

Есть организации в России которые в досудебном порядке помогают собрать доказательства и взыскать с «пирата» лицензионные отчисления и помогают если нужно пройти через суд. Для предприятия которое использует нелицензионный софт весь этот процесс может быть связан с риском полной остановки производства что, предположу, существенно дороже чем стоимость лицензии. Опять же имея один прецедент в нише другие участники рынка не будут желать повторения ситуации.
источник

m

mefest in Qt
я забыл. это заказчик попросил защиту? или ты продаешь свою программу?
источник

𝔾ℝ

𝔾𝕣𝕒𝕪 ℝ𝕒𝕧𝕖𝕟... in Qt
Вот тут плюсану обеими руками!
источник

RR

Ramil Rizvanov in Qt
Сам свою
источник

GS

Georgy Shepelev in Qt
Ну возьми вмпротект. Он стоит не дорого, и если все по инструкции сделаешь грамотно - довольно хорошая защита будет
источник

RG

Renat Garaev in Qt
@KoynovStas @anatolijs Еще стоит добавить, что в России, часто хотят и часто бывает, думают, как защитить проект, и это сделать бесплатно... (или почти бесплатно), не покупая не делая затраты на приложения/лицензии , которые профессионально этим занимаются, и которые прилично стоят по деньгам)
источник

RR

Ramil Rizvanov in Qt
Интересно, спасибо!
источник

AU

Abu Umar in Qt
https://habr.com/ru/post/76248/ попробовал реализовать pimpl кутешный, вот только не могу понять одну штуку, QObject же внутри уже имеет член d_ptr (  QScopedPointer<QObjectData> d_ptr;) а если строго по этой инструкции писать то я получаю переопределение же. Автор как-то об этом не упомянул
источник

F

FPOHTMEH in Qt
В свое время использовал CodeVirtualizer в проекте который использовал библиотеку проверки лицензий RLM. 100 евро всего лишь, единоразово
источник

RR

Ramil Rizvanov in Qt
Reprise Software | Software License Management | Concurrent Licensing
https://www.reprisesoftware.com/products/software-license-management.php
источник

RR

Ramil Rizvanov in Qt
Оно?
источник

F

FPOHTMEH in Qt
Не, ищи CodeVirtualizer
источник

RR

Ramil Rizvanov in Qt
источник

RR

Ramil Rizvanov in Qt
источник

RR

Ramil Rizvanov in Qt
это чудо никто не использовал? еще и дотнет поддерживает всего за 200 зеленых
источник

S

Sergey eSKon in Qt
Немного расскажу как делал защиту я. Без всяких дополнительных библиотек. Берём некий кусок программы, длиной x байт (можно использовать указатель на main, или на какой-нибудь текст из программы, например список менюшек). Генерируем случайный байтовый массив той же длины. Генерируем случайный набор простых операций над этими двумя массивами (побитовые операции, арифметические) так чтобы на выходе получился массив той же длины. Последовательность действий записываем. Лицензионный код это первые x байт и сразу за ними x результирующих байт в 16ричном виде. Теперь берём сгенерированный код и раскидываем его кусками по разным частям кода инициализации, нужно только четко представлять последовательность. Так чтобы к моменту загрузки где то просчиталось и куда то сложилось то, что получилось из первой части. В конце сравниваем 1 байт из второй части лицензии с результатом и ругаемся если не совпадает. По остальному коду в случайных местах раскидываем сравнение других байт. Понятно, что и результат неплохо бы не в одном месте хранить. 1 байт в одном модуле, другой в другом. Защита не идеальная, но прекрасно показала себя.
источник

I

Ilya F. <IF> in Qt
В конце сравниваем 1 байт из второй части лицензии с результатом и ругаемся если не совпадает.
IDA - поиск по сообщениям об ошибке и потом найти ближайший
cmp REGISTER, VALUE
jne FAILURE_FUNCTION_LABEL
и все остальные сложные манипуляции получаются бессмысленные? если есть конечное сравнение
источник

S

Sergey eSKon in Qt
конечное сравнение не просто сравнение, это тоже некая последовательность раскиданная по коду
источник