Защита программы
От: ikseg  
Дата: 26.07.10 12:15
Оценка:
Необходимо реализовать защиту программы от не лицензионного использования, чтобы максимально усложнить жизнь реверсинженеру. Учитывая, что это совсем не простая задача, а опыта в защите ПО нет, внемлю советам гуру.
В голову пришла такая простая мысль... Написать алгоритм генерации хэш кода по параметрам системы, загнать его в службу. Приложение общается со службой при каждом выполнении сколь-нибудь значащей операции и получает от неё зашифрованные сообщения с ответами да/нет. Если ответ службы расшифровывается как "Да", то приложение выполняет операцию, если "Нет", то просто вываливается из ОП. Служба при каждом обращении генерирует по параметрам системы соответствующий ей хэш и сравнивает с хэшом, который пользователь указал(пользовательский хэш записан в реестре).
Насколько легко сломать такую защиту? Как я понимаю, самое узкое место здесь это посылка/принятие сообщений. Можно ли дизассемблировать службу в рантайме и отследить её работу?
Вообще, надо ли это делать именно так или проще все проверки сделать в приложении(генерацию хэша, получение хэша из реестра), естественно предварительно запутав код?
Re: Защита программы
От: bnk СССР http://unmanagedvisio.com/
Дата: 26.07.10 12:51
Оценка:
Здравствуйте, ikseg, Вы писали:

I>Необходимо реализовать защиту программы от не лицензионного использования, чтобы максимально усложнить жизнь реверсинженеру. Учитывая, что это совсем не простая задача, а опыта в защите ПО нет, внемлю советам гуру.


Если ты раньше такого не делал, то IMHO намного проще, дешевле, и надежнее будет тупо купить протектор (типа армадиллы и прочих).
А вообще тебе наверное не в C++, а сюда, искать можно по словам типа "защита".
Re: Защита программы
От: rm822 Россия  
Дата: 26.07.10 14:28
Оценка:
Нет у тебя шансов, если разработчики не приложили особых усилий в виде недель работы, то ломается часа за 4.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Защита программы
От: Vamp Россия  
Дата: 26.07.10 15:33
Оценка: 4 (1) +1 :)))
I>Насколько легко сломать такую защиту? Как я понимаю, самое узкое место здесь это посылка/принятие сообщений.
Узкое место тут в другом. Все это ломается элементарно. Служба вообще выбрасывается на помойку и закорачивается проверка в самом приложении. А что там хеширует служба никого не интересует.

I>Вообще, надо ли это делать именно так или проще все проверки сделать в приложении(генерацию хэша, получение хэша из реестра), естественно предварительно запутав код?

Не тем ты занят. Не зря говорят, что "российские программы — это глубокие, хорошо продуманные, архитектурно безупречные защиты от копирования с небольшими дополнительными возможностями". Вложив энергию в собственно приложение, ты получишь отдачу гораздо больше.
Да здравствует мыло душистое и веревка пушистая.
Re: Защита программы
От: nen777w  
Дата: 26.07.10 18:37
Оценка:
Я написал свою защиту в виде: виртуальная машина + ЯП + компилятор.
Это добро работает под Win и Mac.
Недостаток то что критический код который надо защитить нужно писать руками на ЯП затем компилировать и потом уже встраивать в программу вместе с библиотекой виртуальной машины.
Хотя в то же время это дает больший контроль.

Честно сказать в полевых условиях моя защита ещё не работала. Всё никак не допилю проект для которого она и писалась, и которому уже года полтора или больше.
Но конец уже (как всегда ) совсем рядом.
Re: Защита программы
От: nen777w  
Дата: 26.07.10 18:44
Оценка: 3 (1)
Да.
Ещё про защиту. Если никогда не ломал — попробуй что то сломать, это полезный опыт.
Возьми такой инструментарий: IDA + HexRays, OllyDbg и PEiD — (иногда надо если код запакован)

Попробуй ломануть какую то программу, сразу станет ясно насколько эти тулы облегчают жизнь взломщикам.
Особенно первые два.

В интеренете кучу полезных статей как защитить свое приложение от взлома. Есть хорошая статья Криса Касперского.
Линку на неё если надо могу дать только завтра.
Re[2]: Защита программы
От: Аноним  
Дата: 26.07.10 18:51
Оценка:
Здравствуйте, nen777w, Вы писали:

N>В интеренете кучу полезных статей как защитить свое приложение от взлома. Есть хорошая статья Криса Касперского.

N>Линку на неё если надо могу дать только завтра.

Спасибо, было бы интересно почитать.
Re[2]: Защита программы
От: ikseg  
Дата: 26.07.10 18:53
Оценка:
Здравствуйте, nen777w, Вы писали:

N>В интеренете кучу полезных статей как защитить свое приложение от взлома. Есть хорошая статья Криса Касперского.

N>Линку на неё если надо могу дать только завтра.

Спасибо! Если есть что интересное, кидайте конечно.
Re[2]: Защита программы
От: ikseg  
Дата: 26.07.10 18:57
Оценка:
Здравствуйте, Vamp, Вы писали:

I>>Насколько легко сломать такую защиту? Как я понимаю, самое узкое место здесь это посылка/принятие сообщений.

V>Узкое место тут в другом. Все это ломается элементарно. Служба вообще выбрасывается на помойку и закорачивается проверка в самом приложении. А что там хеширует служба никого не интересует.

I>>Вообще, надо ли это делать именно так или проще все проверки сделать в приложении(генерацию хэша, получение хэша из реестра), естественно предварительно запутав код?

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


Эх... В том то и дело, что вложено в приложение много энергии. Ну ладно... что-то наваяю сам как и планировал, а если будет успех у приложения, придётся купить готовое решение.
Re[3]: Защита программы
От: nen777w  
Дата: 26.07.10 18:58
Оценка:
Короче вот: Защита игр от взлома Автор: (c)Крис Касперски ака мыщъх
Есть ещё какие то, но те уже завтра потому что линок сейчас под рукой нету, а названия не помню.
Re[2]: Защита программы
От: ikseg  
Дата: 26.07.10 18:59
Оценка:
Здравствуйте, rm822, Вы писали:

R>Нет у тебя шансов, если разработчики не приложили особых усилий в виде недель работы, то ломается часа за 4.


Понятное дело, что всё очень не просто, но запутать хотя бы малоопытного крякера, не прикладывая недельных усилий, было бы не плохо.
Собственно вопрос о не сложном решении проблемы.
Re[2]: Защита программы
От: ikseg  
Дата: 26.07.10 19:02
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Если ты раньше такого не делал, то IMHO намного проще, дешевле, и надежнее будет тупо купить протектор (типа армадиллы и прочих).



Согласен,но на начальном этапе этот вариант не приемлем в силу материальных затрат.
Вот если дело пойдёт, то выхода другого не останется.
Re: Защита программы
От: Centaur Россия  
Дата: 26.07.10 20:11
Оценка: +1
Здравствуйте, ikseg, Вы писали:

I>Необходимо реализовать защиту программы от не лицензионного использования, чтобы максимально усложнить жизнь реверсинженеру.


Не мешайте пользователям пользоваться программой, и они будут вас любить.
Re: Защита программы
От: Аноним  
Дата: 26.07.10 20:34
Оценка:
Здравствуйте, ikseg, Вы писали:

I>Необходимо реализовать защиту программы от не лицензионного использования, чтобы максимально усложнить жизнь реверсинженеру. Учитывая, что это совсем не простая задача, а опыта в защите ПО нет, внемлю советам гуру.

I>В голову пришла такая простая мысль... Написать алгоритм генерации хэш кода по параметрам системы, загнать его в службу. Приложение общается со службой при каждом выполнении сколь-нибудь значащей операции и получает от неё зашифрованные сообщения с ответами да/нет. Если ответ службы расшифровывается как "Да", то приложение выполняет операцию, если "Нет", то просто вываливается из ОП. Служба при каждом обращении генерирует по параметрам системы соответствующий ей хэш и сравнивает с хэшом, который пользователь указал(пользовательский хэш записан в реестре).
I>Насколько легко сломать такую защиту? Как я понимаю, самое узкое место здесь это посылка/принятие сообщений. Можно ли дизассемблировать службу в рантайме и отследить её работу?
I>Вообще, надо ли это делать именно так или проще все проверки сделать в приложении(генерацию хэша, получение хэша из реестра), естественно предварительно запутав код?

если программа будет интересна многим, то ее сломают
чем бы она нибыла защищена или запакована. просто поверте

если хотите что бы вашу программу никогда никто не ломал
сделайте ее не интересным фуфлом и толкайте например америкосам
Re[2]: Защита программы
От: morm Россия  
Дата: 26.07.10 23:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, ikseg, Вы писали:


I>>Необходимо реализовать защиту программы от не лицензионного использования, чтобы максимально усложнить жизнь реверсинженеру. Учитывая, что это совсем не простая задача, а опыта в защите ПО нет, внемлю советам гуру.

I>>В голову пришла такая простая мысль... Написать алгоритм генерации хэш кода по параметрам системы, загнать его в службу. Приложение общается со службой при каждом выполнении сколь-нибудь значащей операции и получает от неё зашифрованные сообщения с ответами да/нет. Если ответ службы расшифровывается как "Да", то приложение выполняет операцию, если "Нет", то просто вываливается из ОП. Служба при каждом обращении генерирует по параметрам системы соответствующий ей хэш и сравнивает с хэшом, который пользователь указал(пользовательский хэш записан в реестре).
I>>Насколько легко сломать такую защиту? Как я понимаю, самое узкое место здесь это посылка/принятие сообщений. Можно ли дизассемблировать службу в рантайме и отследить её работу?
I>>Вообще, надо ли это делать именно так или проще все проверки сделать в приложении(генерацию хэша, получение хэша из реестра), естественно предварительно запутав код?

А>если программа будет интересна многим, то ее сломают

А>чем бы она нибыла защищена или запакована. просто поверте

А>если хотите что бы вашу программу никогда никто не ломал

А>сделайте ее не интересным фуфлом и толкайте например америкосам

Самый просто способ от школьников в месте проверки подлинности не делать if(key==mkey) //В итоге обычно к этому сводится и хэширование и пароли и т.д. и т.п.
а поставить std::map с указателями на функции, да побольше. Делаешь файлик с идентификационной инфой, SHA1 или MD5 жмешь, результат — ключ мапа.
Школьники — отдыхают. Правда все что надо — один нормальный (легальный) файлик. Потом работы на час, не больше.
Re: Защита программы
От: trophim Россия  
Дата: 27.07.10 19:12
Оценка:
у нас аппаратный ключ поставляется — senselock. но это накладно... (каждому юзеру отдай ключ, а это ж не софт, а железяка)
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>
Let it be! — Давайте есть пчелу!
Re[2]: Защита программы
От: Слава Израиль  
Дата: 28.07.10 13:50
Оценка:
Здравствуйте, trophim, Вы писали:

T>у нас аппаратный ключ поставляется — senselock. но это накладно... (каждому юзеру отдай ключ, а это ж не софт, а железяка)


Такие ключи эмулируются програмно.
Спасибо за внимание
Re[3]: Защита программы
От: Аноним  
Дата: 28.07.10 15:27
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, trophim, Вы писали:


T>>у нас аппаратный ключ поставляется — senselock. но это накладно... (каждому юзеру отдай ключ, а это ж не софт, а железяка)


С>Такие ключи эмулируются програмно.


:-D не мешайте разработчикам апаратных ключаей косить бабло!
Re[3]: Защита программы
От: trophim Россия  
Дата: 28.07.10 19:38
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, trophim, Вы писали:


T>>у нас аппаратный ключ поставляется — senselock. но это накладно... (каждому юзеру отдай ключ, а это ж не софт, а железяка)


С>Такие ключи эмулируются програмно.


Да я сам не последний человек в это деле... =)
А именно Senselock (а не всякие хаспы) вы эмулировали или может пруфлинки есть? Может зря я понадеялся на них.
Хотя, как всегда, все упирается в сумму гонорара, которую предложат взломщикам =) А то ж и хардварно можно дубликат собрать по атомам
... << RSDN@Home 1.2.0 alpha 4 rev. 1446>>
Let it be! — Давайте есть пчелу!
Re[4]: Защита программы
От: Слава Израиль  
Дата: 28.07.10 20:10
Оценка: :)
Здравствуйте, trophim, Вы писали:

T>Здравствуйте, Слава, Вы писали:


T>Да я сам не последний человек в это деле... =)

T>А именно Senselock (а не всякие хаспы) вы эмулировали или может пруфлинки есть? Может зря я понадеялся на них.
T>Хотя, как всегда, все упирается в сумму гонорара, которую предложат взломщикам =) А то ж и хардварно можно дубликат собрать по атомам

Спасибо, погуглил, почитал, выглядит обнадеживающе. Почитаю потом ещё.

ЗЫ. Я уже давно ничего не ломаю — бросил.
Спасибо за внимание
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.