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

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.11.2005 (Вт) 16:24

Andrey Fedorov
истину глаголишь :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.11.2005 (Вт) 16:25

kif писал(а):написал функцию, и вставляй ее где хочешь, чего тут такого?

И смысл?
Взломщик заблокирует вызов этой функции.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение keks-n » 08.11.2005 (Вт) 16:38

Вот обработал прогу кое чем.(не upx). Посмотрите, авось не сломается.
Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.11.2005 (Вт) 16:47

ASProtect что-ли? так его уже ломали и не раз

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

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

Сообщение AndreyIl » 08.11.2005 (Вт) 16:56

Вся проблема заключается в следующем: Ломать - не строить, душа не болит!!!

Если программа защищена кодом, то его можно подобрать методом перебора. Это 100%-ный метод.

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

Если кто-то придумает суперзащиту, то, соответственно найдется тот, кто ее поломает.

Так что тему, думаю, можно закрывать.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

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

Сообщение Andrey Fedorov » 08.11.2005 (Вт) 17:02

AndreyIl писал(а):Если программа защищена кодом, то его можно подобрать методом перебора. Это 100%-ный метод.


И сколько ты будешь перебирать, если на то чтобы узнать результат тебе нужно несколько минут визуального контроля работы программы?

Проще уворовать ключ, но это не пройдет в случае привязки программы к компьютеру. Однако привязка к компьютеру применима лишь в отдельных случаях ибо неудобна пользователю...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

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

Сообщение alibek » 08.11.2005 (Вт) 17:02

AndreyIl писал(а):Если кто-то придумает суперзащиту, то, соответственно найдется тот, кто ее поломает.
Так что тему, думаю, можно закрывать.

Да неужели?
Ну поломай X-Spider7.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.11.2005 (Вт) 19:28

Konst_One писал(а):господа, есть еще один занимательный вариантик.
если есть у проекта хоть одна форма, то защиту можно формить в виде OCX, который нужно положиь на главную форму, а в OCX встроить таймер и чекать каждый раз когда надо, прога , которую защищают, может даже и не знать ,что она под защитой.

Хакер тебе за такое отдельное спасибо скажет: надо же, даже не надо выискивать в коде защиту - вот она перед тообой на тарелочке, в отдельном OCX-файле.
Изображение

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

Сообщение GAGArin » 08.11.2005 (Вт) 20:28

Konst_One
Плюс возникает закономерный вопрос, а что чекать то по таймеру? Если у нас есть проверка которая точно покажет что прога сломана, ну ИМХО тогда не надо огород городить, а если нет, то чем станет лучше?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.11.2005 (Вт) 20:59

а вот что чекать - это уже отдельный секрет каждого :)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.11.2005 (Вт) 21:00

tyomitch
в том , что защита лежит в отдельном компоненте ничего страшного нет, подобный подход используется многими компаниями и вполне успешно во многих случаях , кстати.

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

Сообщение Amed » 08.11.2005 (Вт) 21:01

Неужели наличие таймера так сложно отследить и прекратить всякое трепыхание? ;)

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

Сообщение GAGArin » 08.11.2005 (Вт) 21:08

Konst_One
Если найдешь проверку которая не будет обходиться то нафига таймер? Вопрос два: А нафига в OCX то? Чисто в код формы забить что ли нельзя? Как сказал Amed по сути получим одну проверку в начале, и лежащий таймер. Вобщем-то многие так и делают (правда обходясь без таймера) вопрос в том какую бы такую проверку забацать? ИМХО сдесь это и обсуждается

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 09.11.2005 (Ср) 9:47

FleX_2004 писал(а):2 Андрей Федоров... "проверяем контрольную сумму ключа"- очень умно- я тебе всегда нужную контрольную сумму буду впихивать... что делать буишь?


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

FleX_2004 писал(а):"проверяем где то в коде но ничего не говорим..." - зачем говорить - хакер и так знает.. кто ищет тот найдет...


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

FleX_2004 писал(а):вот то что несколько проверок это да, но сможешь ли ты придумать 10 проверок??? фантазии хватит??? да и еще ...


Да мне хватало и одной. Максиум что делали крякеры - генерили ключ проходящий по контрольной сумме (я ее довольно просто считаю, при желании даже вручную можно подобрать). Ну убирался наг-скрин и только. На радостях этот ключик и распространяли...

FleX_2004 писал(а):посмотрев код 3-4х проверок кракер так проникнется твоими мыслями, что все оснальные проверки он будет знать заранее...


А каким макаром он эти проверки, собственно, найдет? Ты себе это представляешь? Ну может дизассемблирует всю программу (exe в несколько мегабайт) и изучит ее код - тогда заранее сниму перед ним шапку - за тупое упорство... Но на это у них терпения/времени не хватает - все что делали примитивный подбор (именно подбор) ключа для снятия наг-скрина.

FleX_2004 писал(а):должна его ЗНАТЬ... не правда ли??? И лецензионный ЮЗЕР должен его знать... а раз знает более 2 человеков, то это уже не тайна... это по секрету всем свету =)


Лицензионный юзер хочет получать дальнейшие обновления и поддержку, не так ли? В случае если её ключ обнаружится в интернете то он просто блокируется в следующей версии и юзер лишается дальнейших обновлений и какой-либо поддержки - об этом предупреждается сразу. У меня не было случая чтобы человек купивший программу для дела выкладывал ее ключ.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

Сообщение Antonariy » 09.11.2005 (Ср) 9:57

FleX_2004
GPP тебе предложил файл с условным переходом, видимо, простым If'ом. Я - с Select Case с функциями в качестве аргументов.
В этом примере еще один тип перехода. Попробуй обойти, плиз. В последний раз, больше не буду :)
Вложения
cryptest2.rar
(12.1 Кб) Скачиваний: 158
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 09.11.2005 (Ср) 10:12

Я думаю, что особой разницы между IF и SELECT CASE не будет.
А вот с CallByName можно попробовать.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Antonariy » 09.11.2005 (Ср) 10:53

Причем тут CallByName? Задача в том, чтобы сравнить нечто с чем-то, а хакер не смог бы аннулировать результат сравнения. А как переходить после сравнения - Call или CallByName - глубоко фиолетово.
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 09.11.2005 (Ср) 11:09

А зачем сравнивать?
CallByName Encrypt(CryptedString)
Если расшифровать неправильно, то и переход будет неправильным, т.е. программа вылетит с ошибкой.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 09.11.2005 (Ср) 15:34

FleX_2004 писал(а):кста что ж там за прога в несколько мегабайт???? ты 2 ую винду пишешь???


Обыкновенная программа работающая с базой данных с кучей форм и отчетов. Таких - море.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

Сообщение Antonariy » 09.11.2005 (Ср) 17:57

Код: Выделить всё
Private Sub Command2_Click()
Dim r() As Long
Dim X
    If Dir(App.Path & "\hdd.bin") <> "" Then
        'read file---------------------------------------
        ReDim r(0 To FileLen(App.Path & "\hdd.bin") / 4 - 1)
        On Error GoTo asdasas
        Open App.Path & "\hdd.bin" For Binary As #1
        Get #1, , r
        Close #1
        '---------------------------------------------------
        X = r(0) / Len(Decode(r, CDbl(GetSetting("cryptest", "keys", "pb", 0)), CDbl(GetSetting("cryptest", "keys", "sh", 0))))
        Label3.Caption = "Серийные номера совпадают."
    Else
        Label3.Caption = "Зашифрованный файл не найден!"
    End If
    Exit Sub
asdasas:
    Label3.Caption = "Серийные номера не совпадают."
End Sub
Лучший способ понять что-то самому — объяснить это другому.

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 09.11.2005 (Ср) 18:39

А мона в инете серийники проверять. Правда в большинстве случаев это взламывается очень просто, написанием прокси.
[Место cдаётся]

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 10.11.2005 (Чт) 18:20

GPP_Protection 1.0.rar
kode:203026150
Msg: Yes!!!!!!!!!!!!!!!!!!!
Time: 15min
(ломать - не строить)
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 11.11.2005 (Пт) 9:33

Вообще-то я ее не ломал, пароль не подбирал, а просто заглянул в память и взял готовое чило! А 15 минут - по тому, что мне в тот момент позвонили и я 10 минут потерял. А ты изменил тело :!: программы, занопил переходы, но при этом изменил структуру кода. А на этом может быть построена дополнительная защита, т.е. прога либо "замрет" однажды либо станет невозможным апгрейд, либо...
Меня интересуют методы защиты информации, файлов и проч. Если дашь свою прогу - могу попробовать( если время будет). По ссылке я нашел только правила.
ЗЫ:( Да! Я всегда пытаюсь найти возможность не коверкать тело программы! А найти подход...)

Пред.След.

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

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

Сейчас этот форум просматривают: Google-бот и гости: 78

    TopList