Как защетить прогу от копирования ???

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

Как защетить прогу от копирования ???

Сообщение CRClub » 12.12.2004 (Вс) 20:45

Как защетить мою прогу от копирования с дискеты ???
Чтоб её нельзя было скопировать к себе на жесткий...
Только запуск с дискеты....
Жду ответов :wink:

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

Сообщение tyomitch » 12.12.2004 (Вс) 20:52

Никак. Любая защита взламывается за определённое время.
Изображение

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 20:58

Да её ломать никто не будет :)
Просто мне надо дать прогу пару челам, на некоторое время, но чтоб она у них на компе не осталась.
И в взломе прог они вообще не рубят.
Хотя бы есть самый простой метод защиты ???
Может кто подскажет ???

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 12.12.2004 (Вс) 21:24

К примеру, так: берешь "битую" дискету, записываешь на неё файл 42.dll так, чтобы он не читался, и свою прогу так, чтоб читалась. В проге делаешь проверку:
Код: Выделить всё
If Dir(App.Path & "\42.dll") ="" Then MsgBox "Не найден файл 42.dll. Жизнь потеряла смысл!"

Для работы программы эта библиотека не нужна а факт её наличия система проверяет "не вчитываясь". Зато при попытке скопировать твою прогу ничего не получится.
ЗЫ. Согласен, что метод дегенератский, зато работает без низкоуровневого кодинга.
Листинги не горят!

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 21:29

Спасибо пойду пробовать :)
Может есть ешо какойнить метод ???

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 12.12.2004 (Вс) 21:54

If left(app.path,1)="A" then ... else msgbox "good by" :roll:
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 22:07

Яж не профи в VB расшифруй :) плиз .......

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 12.12.2004 (Вс) 22:10

Код: Выделить всё
private sub Form_load()
If not left(app.path,1)="A" then msgbox "good by":end
'Здесь пиши все, что тебе нужно
end sub

Вот так. Если программа не лежит на дискете, она выводит сообщение good by и завершается.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 22:18

Спасибки ANDLL ...
Но походу её можно скопировать на другую дискету и она будет похать !?
Если так, то не прокатит :(

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 12.12.2004 (Вс) 22:19

Например:
1) в DOS'е набери A:, потом Dir /p
2) там будет "Volume Serial Number is ...", его запиши в прогу
3) при запуске смотри с.н. диска проги через GetVolumeInformation и сравнивайс с.н. той дискеты.

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 22:27

У меня нет Dosa !!!
Без него можно узнать серийник ???

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 12.12.2004 (Вс) 22:36

Это в "цитату" надо :lol:
Я имел ввиду, что... Ладно, забей ;) Попробуй так:

1) Вставь этот код и получи сериал дискеты:
Код: Выделить всё
Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Private Sub Form_Load()
Dim SN As Long
GetVolumeInformation "A:\", vbNullString, 0, SN, 0, 0, vbNullString, 0
MsgBox SN
End Sub
2) В твою прогу вставь этот код:
Код: Выделить всё
Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Private Sub Form_Load()
Dim SN As Long
GetVolumeInformation VBA.Left(App.Path,3), vbNullString, 0, SN, 0, 0, vbNullString, 0
If SN <> <здесь номер, который ты получил из кода 1> Then MsgBox "Жизнь прошла", vbCritical: End
End Sub
Использование:
1) Запуск кода 1
2) Допустим, что после запуска кода 1 у тебя появился номер "1234567"
3) Иди в свою прогу и вставь туда код 2
4) В строчке
Код: Выделить всё
If SN <> <здесь номер, который ты получил из кода 1> Then MsgBox "Жизнь прошла", vbCritical: End
меняешь "<здесь номер, который ты получил из кода 1>" на "1234567"
5) Сохраняешь на дискету

Прога будет работать только с этой дискеты.
Последний раз редактировалось A.A.Z. 12.12.2004 (Вс) 22:42, всего редактировалось 1 раз.

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 22:41

Большое человеческое спасибо :)
ТАк что ты имел ввиду ??? :)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 12.12.2004 (Вс) 22:43

Что это можно и из командной строки ввести :wink: А DOS, пока еще, есть у всех :) Или уже нет? :roll:

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 22:49

Просто я командной не работаю она у меня глючная :)
Всю жизень ошибки выдаёт !!!

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 22:53

Ешо возник маленький вопрос :)
Когда я сделал свою прогу и использовал в ней всякие компоненты, чтоб прога пошла на другом компе мне надо скинуть все контролы в папку с прогой ???

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

Сообщение tyomitch » 12.12.2004 (Вс) 23:07

CRClub писал(а):Просто я командной не работаю она у меня глючная :)
Всю жизень ошибки выдаёт !!!
У всех работает, а у тебя глючная? :roll:

Притом банальный diskcopy в данном случае рушит всю "защиту".
Изображение

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 23:09

Защита рушится ???
С сериным номером дискеты ???

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

Сообщение tyomitch » 12.12.2004 (Вс) 23:09

CRClub писал(а):Ешо возник маленький вопрос :)
Когда я сделал свою прогу и использовал в ней всякие компоненты, чтоб прога пошла на другом компе мне надо скинуть все контролы в папку с прогой ???

Этого мало, их все надо зарегистрировать. Ищи по слову "regsvr32"
Изображение

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

Сообщение tyomitch » 12.12.2004 (Вс) 23:11

CRClub писал(а):Защита рушится ???
С сериным номером дискеты ???

Конечно. diskcopy, входящий в поставку Винды, скопирует на новую дискету и его тоже.
Изображение

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 23:11

ТОгда как быть ???

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

Сообщение tyomitch » 12.12.2004 (Вс) 23:16

Использовать предложенный Faust-ом метод (поцарапать дискету в определённом месте). Это уже не так просто обойти, но и тебе кодить придётся прилично, чтобы удостовериться, что царапина на месте...
Изображение

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 23:18

Ну а полегче програмнымм методом без царапин обойтись мона ???

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

Сообщение tyomitch » 12.12.2004 (Вс) 23:22

Нет. Если твоя дискета не будет физически уникальной, тогда как твоя прога отличит её от любой другой?
Изображение

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 23:26

Не знаю поэтому и спрашиваю здесь...
Так что теперь делать дискету царапать ???
Да я даже не знаю как это заделать так ешо и программировать надо :(

Sonic the Hedgehog
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 61
Зарегистрирован: 12.12.2004 (Вс) 0:59

!

Сообщение Sonic the Hedgehog » 12.12.2004 (Вс) 23:39

Меня тоже заинтересовала тема защиты от копирования програм с дискеты:
но способы которые вы перечислели у меня что то не получаютца! :(
АААААААААААААА УА УА УА УА УА УА УА :cry:
Такой вот я, зла не помню, приходится записывать.

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

Сообщение tyomitch » 12.12.2004 (Вс) 23:51

Блин, ну естественно ведь, что придётся много писать! Вы думали, в VB есть стандартная функция ПроверитьПодлинностьДискеты? Однозначно, что это не для новичков - писать свою защиту... Неужели настолько ценная программа-то, что потребовалось так её защищать?
Изображение

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 12.12.2004 (Вс) 23:51

С серийником от дискеты всё работает, сам тока проверял, правда говорят это обойти может даже ламёр, а как быть я не знаю :(
Может ктонить чтонить умное подскажет ???
Буду ждать....

CRClub
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 11.12.2004 (Сб) 17:06

Сообщение CRClub » 13.12.2004 (Пн) 0:18

Просто она НЕдолжна (прога) остатьтся на вражеском компе :)

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

Сообщение tyomitch » 13.12.2004 (Пн) 0:26

Если она перестанет работать после определённой даты, как неактивированная Винда - этого достаточно? :-)
Изображение

След.

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

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

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

    TopList  
cron