Методы зашиты VB программы от копирования.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 27.01.2006 (Пт) 5:55

Amed, тогда все ясно...
GPP(c) Gorlo Pavel Programming

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 27.01.2006 (Пт) 11:15

А как идея взаимодействия с внешним, например com ключем... В ключе содержится чип памяти, который хранит допустим библиотечные функции программы. Без чипа прога работать не будет. А чтение и запись с ключа шифровать. Только вот вопрос, реально ли такое сделать на VB... И целесообразно ли... В принципе чипы стоят не дорого... Т.е. себестоимость такого ключа будет рублей 150. Конечно если цена продаваемой программы не приближается к цене ключа...
Старый глюк лучше новых двух!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 27.01.2006 (Пт) 11:31

Может проще на флешке?
Лучший способ понять что-то самому — объяснить это другому.

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 27.01.2006 (Пт) 11:36

Флешка, это стандартно... Это просто хранилище памяти. Ее содержимое можно просто копирнуть. А ключ можно реализовать на более хитрых чипах, которые производят чтение только по паролю... Я сейчас занимаюсь программированием 1-Wire интерфейсов, там такого добра полным полно. И с наскоку это не сломаешь...
Старый глюк лучше новых двух!

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 27.01.2006 (Пт) 12:40

Gigahard писал(а):А как идея взаимодействия с внешним, например com ключем... В ключе содержится чип памяти, который хранит допустим библиотечные функции программы. Без чипа прога работать не будет. А чтение и запись с ключа шифровать. Только вот вопрос, реально ли такое сделать на VB... И целесообразно ли... В принципе чипы стоят не дорого... Т.е. себестоимость такого ключа будет рублей 150. Конечно если цена продаваемой программы не приближается к цене ключа...

У нас в Монголии сделали програму а зашита производился так:
    К LPT порту втюривали устройстсво и без него прога не работала.
    Цена проги 70$.
Вопрос:
    Можно ли сделать самим такое устройство.
Сколько денег на это уйдёт:
    Устройство
    Чип

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 27.01.2006 (Пт) 13:33

Флешка, это стандартно... Это просто хранилище памяти. Ее содержимое можно просто копирнуть. А ключ можно реализовать на более хитрых чипах, которые производят чтение только по паролю... Я сейчас занимаюсь программированием 1-Wire интерфейсов, там такого добра полным полно. И с наскоку это не сломаешь...
Это уж пусть сам юзер беспокоится о сохранности флешки. Прога без нее не работает - и достаточно. А в темной подворотне ему и без всяких интерфейсов кирпич продадут в обмен на ключ от квартиры. И смысл городить огороды, если стоимость программы стремится к стоимости ключа?

Да и вопрос стоял не в том, где и как ключ хранить. А как сделать так, чтобы программу невозможно было от него "отучить".

bayasaa Это называется HASP. Он тоже сломан.
Лучший способ понять что-то самому — объяснить это другому.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 27.01.2006 (Пт) 14:02

А как сделать так, чтобы программу невозможно было от него "отучить".


Мое мнение (а точнее цитата одного крутого крякера): все что можно запустить можно и сломать.
А я все практикую лечение травами...

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 27.01.2006 (Пт) 14:30

Antonariy писал(а):Да и вопрос стоял не в том, где и как ключ хранить. А как сделать так, чтобы программу невозможно было от него "отучить".

Для проверки нужен IF, но FLEX_2004 когда -то сказал что он любой IF обойдёт, есть наверное много людей которые могут обойти, из этого вытекает вопрос:
Можно ли заменит IF, если да то чем.
Antonariy писал(а):bayasaa Это называется HASP. Он тоже сломан.

Как и чем сломали
И всё же
Вопрос:
    Можно ли сделать самим такое устройство.
Сколько денег на это уйдёт:
    Устройство
    Чип

Gigahard
Бывалый
Бывалый
 
Сообщения: 253
Зарегистрирован: 24.07.2002 (Ср) 11:15
Откуда: Russia

Сообщение Gigahard » 27.01.2006 (Пт) 14:46

Это уж пусть сам юзер беспокоится о сохранности флешки.

А мы защиту то вообще для кого делаем? Для юзера или для автора программы? :roll: Точнее, для юзера или от юзера? Юзеру нужно предоставить минимальный набор привилегий и сделать так, чтобы он их не обошел.
Если ключ можно будет воспроизвести, то счастливый юзер это непременно сделает и будет продавать твою же прогу. А тебе ничего не обломится... А вроде как защита для того и делается, чтоб больше одной копии на :pig: не поступало...

Да и вопрос стоял не в том, где и как ключ хранить. А как сделать так, чтобы программу невозможно было от него "отучить".


Это будет возможно, когда часть функционального кода программы будет содержатся в защитном устройстве. Если сам код взаимодействия с таким устройством вырезать из программы, то программа не сможет без него работать. При этом нужно обеспечить защиту самого ключа от эмуляции. Сейчас вся защита ключем, заключается в проверке его наличия в системе. Что легко обходится вырезанием или патченьем этой самой проверки. Я же говорю про динамческое взаимодействие ключа с самим ядром программы. Грубо говоря, ключ служит в качестве расширеной памяти без обращения к которой программа не сможет функционировать.

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

bayasaa
И всё же
Вопрос:
Можно ли сделать самим такое устройство.
Сколько денег на это уйдёт:
Устройство
Чип

Можно. Устройство ты делаешь сам, чип стоит копейки. А вот написать код взаимодействия твоей программы с таким чипом, это и есть основная задача и основной код защиты.
Последний раз редактировалось Gigahard 27.01.2006 (Пт) 15:06, всего редактировалось 2 раз(а).
Старый глюк лучше новых двух!

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 27.01.2006 (Пт) 15:04

По моему всем пора перечитать топик еще раз. Обсуждение вернулось на прошлую фазу.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 27.01.2006 (Пт) 15:58

Можно ли заменит IF, если да то чем.

Ассемблером. Все зависит от того, что ты будешь сравнивать. Можно, например
Код: Выделить всё
cmp eax,0
jz _метка
заменить на
Код: Выделить всё
or eax,eax
jz _метка
Но нормальный ассемблерщик все это раскусит... Сходи на WASM.RU, там много интересного по защите программ. Но главный совет я могу тебе дать: как можно меньше АПИ и как можно больше чистого АСМа.

Осталось только всем выучить АСМ... :lol:
А я все практикую лечение травами...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 27.01.2006 (Пт) 16:24

Как и чем сломали
Ищи Sable
Можно ли заменит IF, если да то чем.
Нет. Единственный способ - сделать невозможным доступ к процессу отладчиками. Или возможным, но бесполезным.
Лучший способ понять что-то самому — объяснить это другому.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 27.01.2006 (Пт) 19:19

Могу дать DLL, блокирующую (Zw)OpenProcess по указанному процессу :)
Но лучше - перехватчик в нулевом кольце разместить.
Изображение

E'rsh
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 111
Зарегистрирован: 12.06.2005 (Вс) 13:52
Откуда: Калининград

Сообщение E'rsh » 27.01.2006 (Пт) 19:36

Про HASP ключ нечего и говорить... сломали... и есть проги для взлома "на дому".
Одному другу надо было взломать защиту 1С.Предприятие v.8, при наличии чужова HASP ключа... полчаса в инете -> закачка проги -> проверка HASP ключа прогой (вломщиком) и все 1С работает без этого HASPa. (но только с этой прогой)
А 1С серьезная фирма... и защита я думаю не фигня.... (хотя кто знает)
Нельзя предугадать действие дураков, поскольку они крайне изобретательны.

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 27.01.2006 (Пт) 20:00

Twister писал(а):
Можно ли заменит IF, если да то чем.

Ассемблером. Все зависит от того, что ты будешь сравнивать. Можно, например
Код: Выделить всё
cmp eax,0
jz _метка
заменить на
Код: Выделить всё
or eax,eax
jz _метка
Но нормальный ассемблерщик все это раскусит... Сходи на WASM.RU, там много интересного по защите программ. Но главный совет я могу тебе дать: как можно меньше АПИ и как можно больше чистого АСМа.

Осталось только всем выучить АСМ... :lol:


Зачем так сложно?

Код: Выделить всё
jz( je) (если флаг Z=1 ) - на jnz (jne) (если флаг Z = 0)


тоесть всего один байт
Лучше думать чем жевать.

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 28.01.2006 (Сб) 4:12

ПРосьба к админам:

Перенести тему в разряд "флудивых" и банить создателей...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 29.01.2006 (Вс) 14:12

Дорогие форумчане, выбирайте выражения. Нечего сказать вежливо - молчите.

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 09.02.2006 (Чт) 23:44

хочу сделать прогу, чтоб она цеплялась к процу (serial или как то ещё)
подскажите плизз, хотел прицепиться к винту, но у многих 2 винта, и ещё там нек. проблемы есть
Изображение

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 10.02.2006 (Пт) 9:36

:-)
а у меня 2 проца. как быть?
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 10.02.2006 (Пт) 16:34

2kif цепляться к первому
Изображение

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 10.02.2006 (Пт) 16:40

вот еще что, у меня есть richtextbox, через него будут просматриваться важные базы, надо, чтоб их нельзя было скопировать через буфер обмена, есть какие нибудь предложения?Я идиот! Убейте меня, кто-нибудь!??
Изображение

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 11.02.2006 (Сб) 16:15

HotKitten писал(а):2kif цепляться к первому

при всем уважении...
то же самое можно применить к винтам :-)
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 11.02.2006 (Сб) 16:20

HotKitten писал(а):вот еще что, у меня есть richtextbox, через него будут просматриваться важные базы, надо, чтоб их нельзя было скопировать через буфер обмена, есть какие нибудь предложения?Я идиот! Убейте меня, кто-нибудь!??


Код: Выделить всё
Private Sub Form_KeyPress(KeyAscii As Integer)
  Clipboard.Clear
End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
  Clipboard.Clear
End Sub

Private Sub Form_Load()
  Form1.KeyPreview = True
End Sub

Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  Clipboard.Clear
End Sub

только это все не спасает от перетаскивания :-(
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 12.02.2006 (Вс) 19:23

HotKitten писал(а):вот еще что, у меня есть richtextbox, через него будут просматриваться важные базы, надо, чтоб их нельзя было скопировать через буфер обмена, есть какие нибудь предложения?Я идиот! Убейте меня, кто-нибудь!??

Просматривай через Label. :lol: В нем текст выделить нельзя и хэндла у него нет. Правда смогут форму отпринтскринить и текст потом распознать... :lol:
А я все практикую лечение травами...

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 13.02.2006 (Пн) 13:57

Twister
от снятия снимка экрана ничто не спасёт, только не все догадаются! :)

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 13.02.2006 (Пн) 14:31

вот еще что, у меня есть richtextbox, через него будут просматриваться важные базы, надо, чтоб их нельзя было скопировать через буфер обмена, есть какие нибудь предложения?Я идиот! Убейте меня, кто-нибудь!??

от снятия снимка экрана ничто не спасёт, только не все догадаются!

Вообще, это глупый вопрос (HotKitten не в обиду сказано). Если ты выводишь инфу на дисплей, значит ты даешь к ней доступ. Ну запретишь ты копирование, но юзверь разве не сможет ее просто запомнить?...
А я все практикую лечение травами...

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 13.02.2006 (Пн) 14:53

Twister
Зачем запоминать, есть цифровые фотокамеры :)

eugene2005
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 30.10.2005 (Вс) 21:35
Откуда: от Верблюда!

Сообщение eugene2005 » 14.02.2006 (Вт) 22:56

нужна часть кода держать в сервере через нет обемниваться.
как игры с ключом

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 16.02.2006 (Чт) 14:35

Twister писал(а):
Вообще, это глупый вопрос (HotKitten не в обиду сказано). Если ты выводишь инфу на дисплей, значит ты даешь к ней доступ. Ну запретишь ты копирование, но юзверь разве не сможет ее просто запомнить?...

это глупуй ответ...
у меня база данных, надо защитить её от копирования
Изображение

Пред.След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList  
cron