powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение серийника HD
108 сообщений из 108, показаны все 5 страниц
Получение серийника HD
    #38855458
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Искал в интернете. Довольно много есть на эту тему обсуждений и примеров. Но в своем большинстве они основаны на дублированной защите. Т.е. серийный номер используют в качестве некоторых символов лицензионного кода и т.д.
Подскажите, пожалуйста, наиболее простой способ получение серийного номера жесткого диска. Хотя для жителей этого форума наверное все способы простые)
Заранее спасибо!
...
Рейтинг: 0 / 0
Получение серийника HD
    #38855490
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_DiskDrive",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_DiskDrive instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "SerialNumber: " & objItem.SerialNumber
Next
...
Рейтинг: 0 / 0
Получение серийника HD
    #38855798
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Делаю прогон в пошаговом, на строке:- Wscript.Echo "-----------------------------------"
вылазит ошибка - необходим объект.

P.S Мне нужно получить sn HD именно в VB6 а через скрипт это случайно не VBS?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38855824
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronэто случайно не VBS?Есссно... разве не видно?
vdekameronна строке:- Wscript.Echo "-----------------------------------" вылазит ошибка - необходим объект.А заменить на Debug.Print сам догадаться не мог?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38855866
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,


AkinaА заменить на Debug.Print сам догадаться не мог?
Башка вообще не варит сегодня. Получилось.

Большой пардон за доп. вопросы, это реально sn??
"32534a42394a4230353334303535202020202020"

Когда вчера гуглил прочитал что сам sn трудно достать, что обычно достается дата его последнего форматирования.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38855904
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronБольшой пардон за доп. вопросы, это реально sn??
"32534a42394a4230353334303535202020202020"Ну я почём знаю? возьми на сайте вендора родную для харда утилю его тестирования, получи ею сериал диска и сравни.
Хотя как по виду - это ASCII-коды (hex) строки сериала в одну кучу. А сам сериал - "2SJB9JB0534055 "
...
Рейтинг: 0 / 0
Получение серийника HD
    #38855924
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaА сам сериал - "2SJB9JB0534055 "

Сорри, как вы его получили? перевожу числа через hex получается вообще не то.
И если ASCII коды, то какие, если тут одно сплошное число и 2 строковых параметра "а" затисались
...
Рейтинг: 0 / 0
Получение серийника HD
    #38855932
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
s = "32534a42394a4230353334303535202020202020"
sn = ""
for i = 1 to len(s)/2
sn = sn & chr(val("&H" & mid(s,i+i-1,2)))
next i
debug.print trim(s)
...
Рейтинг: 0 / 0
Получение серийника HD
    #38855934
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри

Код: vbnet
1.
debug.print trim(sn)
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856039
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Большое спасибо!
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856325
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чет сегодня вообще не мой день((
Получил серийник HD, как теперь выполнить проверку этот ли серийник на железе.
ведь при закрытии программы все переменные принимают значение empty. Если бы переменная сохранялась я бы в нее писал значение и потом сравнивал с новым при запуске программы.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856574
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сохрани в реестре или в файле. Чё как сегодня родился-то?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856675
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

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

Я прочитал что можно объявить переменную как Global ,тогда она при выходе из программы сохранит значение. Ее нужно объявлять только в модуле.
Можно ли в модуле объявить, но при этом чтобы переменная была в окне кода формы, или это противоречит всем законам?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856678
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronЯ прочитал что можно объявить переменную как Global ,тогда она при выходе из программы сохранит значение.приснилось
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856682
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proприснилось
Нет именно прочитал, найти эту ссылку?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856685
vdekameronНет именно прочитал, найти эту ссылку?Просим-просим!
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856695
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
13-й кварталПросим-просим!
Страница 65 - Время жизни переменных
www.bstu.by/uploads/attachments/metodichki/kafedri/Visual_Basic_6.pdf
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856699
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Время жизни переменныхПеременные, объявленные как локальные, при выходе из процедуры удаляются из памяти, а при новом вызове инициализируются заново.
Глобальные переменные при выходе из программы сохраняют свои значения.да, автор накосячил. Вместо "программы", следует читать "процедуры" так же, как и в первом случае
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856706
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полистал пособие, в принципе вроде бы годная вещь, но тяжеловесная - читается с трудом. Но как дополнение к лекциям (как оно, собственно, и задумано), пожалуй, подходит.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856720
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,


Shocker.ProПолистал пособие, в принципе вроде бы годная вещь, но тяжеловесная - читается с трудом

Посоветуйте пожалуйста автора, который дает информацию - доступность\качество
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856723
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не готов, сам осваивал по бумажной книжке, но это было слишком давно, я ее кому-то уже задарил.

попробуйте поискать здесь в форуме по словам "учебник", "литература" (с морфологией)
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856731
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proпопробуйте поискать здесь в форуме по словам "учебник", "литература" (с морфологией)

Да у меня есть литература. Просто думал вы что-то посоветуете будучи уже знающим как и с чем это кушать.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856739
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В чем отличие записи в реестр?
1) SaveSetting
2) WshShell.RegWrite
Есть ли в этих двух вариантах принципиальные отличия, либо они по сути выполняют одно и тоже
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856750
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronВ чем отличие записи в реестр?
1) SaveSetting
2) WshShell.RegWrite

SaveSetting пишет исключительно в свою папку данные. В эту: HKEY_CURRENT_USER\Software\VB and VBA Program Settings\
WshShell.RegWrite же может записать в любую, какую укажете.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856751
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Pristв любую, какую укажете.при наличии прав, разумеется )
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856759
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristSaveSetting пишет исключительно в свою папку данные. В эту: HKEY_CURRENT_USER\Software\VB and VBA Program Settings\
WshShell.RegWrite же может записать в любую, какую укажете.

Очень полезная инфа. спасибо!
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856761
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proпри наличии прав, разумеется )
Я так понимаю что если устанавливать программу с админскими правами, то запишет "в любую, какую укажете"
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856836
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не устанавливать, а запускать
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856855
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел проверять по серийному номеру HD и уже код внес в проект, а сейчас сижу и думаю...какой толк от этого - ноль. Ведь если прогу просто скопировать и перенести на др. комп то это ничего не даст.

Ну ничего не приходит в голову, как можно сделать именно так, чтобы при переносе на др. комп прога видела, что прошлый sn совершенно другой чем считанный сейчас(((

Уважаемые профи, может у вас есть идея. Походу этот способ проверки не подходит или я как обычно не вижу очевидного(((

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
'DeleteSetting "MyApp", "Sekcia"
znachenieSN = GetSetting("MyApp", "Sekcia", "Kluch", "")
  If znachenieSN = "" Then
     strComputer = "."
        Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
        Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", , 48)
           For Each objItem In colItems
             s = Trim(objItem.SerialNumber)
                Next
                sn = ""
                For i = 1 To Len(s) / 2
        sn = sn & Chr(Val("&H" & Mid(s, i + i - 1, 2)))
  Next i
znachenieSN = sn
SaveSetting "MyApp", "Sekcia", "Kluch", znachenieSN
Else
   strComputer = "."
     Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
     Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", , 48)
        For Each objItem In colItems
          s = Trim(objItem.SerialNumber)
             Next
             sn = ""
             For i = 1 To Len(s) / 2
        sn = sn & Chr(Val("&H" & Mid(s, i + i - 1, 2)))
    Next i
If sn <> GetSetting("MyApp", "Sekcia", "Kluch", "") Then MsgBox " жопа"
End If
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856856
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое "перенос программы"? Что есть у программы, кроме ее exe-шника? Сам exe-шник, конечно, можно модифицировать, но это не лучшая идея.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856857
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProА что такое "перенос программы"?

Ну элементарно юзер подумает.- "Скопирую папку с программой из Program Files на другой комп и проверю, вдруг прокатит" а оно таки прокатит, если будет тот код, что показал выше.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856862
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели в VB6 нет возможности сохранять значение переменной, но судя по вашему комменту, нет(((

Shocker.Proприснилось
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856872
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

Вы для себя для начала определитесь от чего защита. Если от переноса на другой ПК то только два варианта: 1. Вы для каждого пользователя делаете эксклюзивную версию программы, в которую вшит номер диска
2. Заводите БД на сервере и в программе обращаетесь к этой БД через инет для получения данных о пользователе и серийнику диска. Если не совпадают - программа не работает.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856879
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist1. Вы для каждого пользователя делаете эксклюзивную версию программы, в которую вшит номер диска
Куда же он будет вшит? Вы предлагаете до установки программы каждому пользователю, узнавать его серийник HD? или я не так понял.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856905
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronВы предлагаете до установки программы каждому пользователю, узнавать его серийник HD?
Я ничего не предлагал - я написал, что для реализации того, что задумали, есть два варианта.
Подумайте сами-то: программа не может хранить данные абы где. Либо это внешняя БД, либо ресурс самой программы. Но ресурсы самой программы нельзя менять во время работы этой программы и он зашивается перед компиляцией проекта. К тому же - даже если отыщете способ изменения ресурса на лету(есть методы): кто мешает пользователю тупо взять исходный чистый файл проги и запустить именно его на другом ПК?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856910
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Pristтупо взять исходный чистый файл проги и запустить именно его на другом ПК?
Не понял, про какой исходный чистый файл проги идет речь

Зря столько времени потратил аж злость берет! Многие используют считываение sn HD и не только HD для защит.
Как же они тогда организуют защиту. Что прямо все хранят на внешних БД. А нельзя например как-то обхитрить VB. И допустим сказать программе что sn это переменная а не значение. Понимаю что бред говорю, но я просто не понимаю как разработчики не предусмотрели хранение каких-то значений в самом приложении.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856915
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronНе понял, про какой исходный чистый файл проги идет речь
Так....Вы бы прежде чем что-то защищать все же учли бы совет, который я дал давно: прочтите книжку умную . Вы сейчас тыркаетесь как котенок, не понимая что именно делаете и куда идти дальше. Ничего хорошего из этого не выйдет. Вы же даже азов не понимаете, о какой нормальной защите речь?
Про исходный файл проги давайте поясню на пальцах и апельсинах, раз не додумывается у Вас логически:
1. возьмите любой файл, заархивируйте его.
2. вышлите себе на почту этот архив
3. после этого скачайте данный архив из почты себе локально на ПК
4. распакуйте архив, измените любые данные распакованного файла(запишите туда тот же серийник)
5. теперь откройте почту с другого ПК и посмотрите: появился ли сейрийник в этом файле?
Тоже самое и с программой: вот поместили Вы внутрь программы серийник. Что мешает пользователю взять и заменить файл программы на тот, который был получен изначально? На тот, в котором еще нет внутри серийника? и его использовать хоть на том же ПК, хоть на другом?

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

vdekameronА нельзя например как-то обхитрить VB. И допустим сказать программе что sn это переменная а не значениеКак бы помягче сказать...Возьмите ведро воды, залейте в бензобак своей машины и скажите, что это не вода, а 95-ый. Посмотрите на результат. Тогда все станет ясно и с VB...
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856916
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina советовал как вариант защиты навешивать поток 17064961
Если не сложно расскажите как это делается и что за смысл этой защиты. Может есть ссылка какого-то конкретного примера, чтобы почитать и попытаться разобраться самому, чтобы не тратить ваше время
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856917
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Pristтыркаетесь как котенок,
В точку, но все-равно дотыкаюсь до чего-то
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856920
ATM-TURBO 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856934
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronЕсли не сложно расскажите как это делается и что за смысл этой защитыХм...как бы попроще...поток это по сути и есть файл. Только не все знают, что поток может быть добавлен к любому файлу и без спец.программ или знаний его обнаружить не получится(в проводнике не видать, диспетчер тоже не отображает). Т.е. можно создать текстовый файл, а к нему навесить исполняемый. Или наоборот. При этом вес текстового файла может быть 10Кб и именно столько будет отражаться в проводнике, несмотря на то, что исполняемый файл(который на него навешен) будет весить еще 500Кб.
Я бы советовал погуглить для начала теорию, прежде чем использовать это бездумно в своих проектах. Как таковых примеров под рукой нет, т.к. на VB этим не промышлял - надо стряпать с нуля, а сейчас уже лень.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38856970
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Спасибо за доступное объяснение! Почитаю об этом!
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857024
vdekameronСтраница 65 - Время жизни переменных
www.bstu.by/uploads/attachments/metodichki/kafedri/Visual_Basic_6.pdfВсего-то приставка "под" пропущена, но как поменялся смысл. Термин "контейнер" в том же разделе спорный, как минимум. Определение событий (стр. 25) вызывает недоумение. И это при том, что на текст смотрел секунд 30.

Я, кстати, не критикую, отнюдь. Хотя бы потому, что методичка написана самостоятельно, а не "слизана" (как 95% подобного материала) с книжек, шедших в коробке с продуктом, это вызывает уважение. Но независимое (а не в соседнем ВУЗе) рецензирование/редактура могло бы улучшить качество материала.

Наиболее полный источник информации по VB6.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857219
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
13-й квартал,

Спасибо за ссылку!
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857443
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ATM-TURBO 2,

Большое спасибо! Это решает мой вопрос!
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857471
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronБольшое спасибо! Это решает мой вопрос!программы, которые модифицируют exe-файлы, очень не любят антивирусы
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857597
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё наличие права на выполнение файла не означает наличия права записи в него - даже в ресурсы и даже вставкой на ассемблере.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857639
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Ну вот, а я только обрадовался)
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857734
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Трабла, почему сейчас в пошаговом цикл выполняется дважды, и второй раз Sn= абракадабра ?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857738
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переменные глобальные? зачем? сделай автономную функцию
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857749
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneпеременные глобальные? зачем? сделай автономную функцию

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub Command2_Click()
Dim strComputer As String, objWMIService As Object, colItems As Object, objItem As Object
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_DiskDrive", , 48)
For Each objItem In colItems
    Debug.Print "-----------------------------------"
    Debug.Print "Win32_DiskDrive instance"
    Debug.Print "-----------------------------------"
    Debug.Print "SerialNumber: " & objItem.SerialNumber
Next
End Sub



Результат тот же. При чем тут глобальные, не глобальные. Раньше тоже были глобальными, результат же был норм. и цикл всего 1 раз выполнялся.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857759
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так у вас там что-то экзотическое в устройствах, обработку ошибок добавьте и увидите
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857767
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneтак у вас там что-то экзотическое в устройствах, обработку ошибок добавьте и увидите
Экзотическое само по себе появилось? Сейчас попробую перезагрузиться
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857769
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это появилось после того, как я заменил DiskDrive на BaseBoard, до этого было все гуд
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857787
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри что это за устройство у тебя дополнительное. выведи все атрибуты objItem
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857866
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще ничего понять не могу. почему после Next идет на второй цикл, и уже после этого sn = херне какой-то.
Код: vbnet
1.
2.
3.
4.
5.
6.
For Each objItem In colItems
    Debug.Print "-----------------------------------"
    Debug.Print "Win32_DiskDrive instance"
    Debug.Print "-----------------------------------"
    Debug.Print "SerialNumber: " & objItem.SerialNumber
Next


Когда Akina скинул, прогонял и дома и на работе, все шло. Абсолютно ничего не менял.

Konst_Oneпосмотри что это за устройство у тебя дополнительное. выведи все атрибуты objItem
Подскажите пожалуйста как мне это сделать, если это может показать в чем проблема(((
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857886
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vdekameron...
Ну ничего не приходит в голову,

как можно сделать именно так,
чтобы при переносе на др. комп прога видела,
что прошлый sn совершенно другой чем считанный сейчас(((
....
сорри ж

у тя :
- комп ы
- прога
-------------------------------
прогА => конст
комп Ы => вар

нууу...
...
Рейтинг: 0 / 0
Получение серийника HD
    #38857915
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
из закоулков памяти..)


а
вроде,

на одном и том же компе
один и тот же диск
но
'разбитый' - даст разные SN


ой,
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858101
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Че за бред отписали

Уважаемые спецы, подскажите хоть кто-то как это можно переварить чтобы работало
17139782
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858175
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronпочему после Next идет на второй циклНу у тебя по мнению диспетчера устройств более одного дискового девайса. Нормальная ситуация. У меня, например, в системе 2 харда, сидюковод и флоп, а девайсов - семь штук.
В цикле накопи массив сериалов, и проверяй наличие элемента с требуемым значением. Какие проблемы?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858217
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaКакие проблемы?
Да проблемы вот в чем!
Повторю, что ничего не менял и никакие у-ва не добавлял ни дома, ни тут. Как только вы мне скинули этот код, я сразу проверил. Все работало до вчерашнего дня блин. Все изменилось тогда, когда я в коде поменял DiskDrive на BaseBoard. С этим может быть связано?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858448
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronя в коде поменял DiskDrive на BaseBoard
Видимо, имеется в виду замена Win32_DiskDrive на Win32_BaseBoard? Если так, то спешу огорчить - свойство SerialNumber для него тупой фэйк.
А можно полюбопытствовать, нахрена? Но это во-вторых, а во-первых, внеся изменения в код, следует показывать код, а не описывать, что там изменено.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858479
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaА можно полюбопытствовать, нахрена? Но это во-вторых, а во-первых, внеся изменения в код, следует показывать код, а не описывать, что там изменено.

Уважаемый Akina, дело уже не в DiskDrive и не в BaseBoard. Уже все перепробовал, перегуглил.
Помог метод - "Тыка" а именно:- тык флешку в USB - пошел на второй цикл. Флешку назад- все норм.

Теперь просьба огромная к вам. Как этого избежать. Я так полагаю что это уже не проканает

AkinaВ цикле накопи массив сериалов, и проверяй наличие элемента с требуемым значением. Какие проблемы?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858493
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может в этом случае лучше использовать не жесткий диск, а что-то типа уникального, например тот же sn мамы или проца
Akinaсвойство SerialNumber для него тупой фэйк. ведь этот фэйк все-равно неизменен?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858519
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

меня все еще интересует вопрос, заданный мной в этой теме давно: что будете делать, если человек не будет даже заморачиваться и станет запускать Вашу прогу на разных ПК из чистого exe, а не переносить один и тот же exe-шник между компами?

Я почему заново спрашиваю: Вы вот сейчас мучаетесь с вопросом привязки к железу, но не учитываете самого элементарного при придуманном Вами методе защиты - как защиту можно обойти. Советую сначала продумать все варианты обхода своей защиты и понять для себя, что допустимо "упустить" из внимания, а что очень важно учесть. Тогда и алгоритм сам сформируется.

И по секрету: серийник харда-то не на всех ПК сможете получить без админ прав, а уже серийник мамы...
Можно еще попытаться использовать ключ Windows. Они уникален. При вашей задаче тоже вполне подойдет.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858559
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Спасибо, всегда даете дельные советы, при этом очень понятно объясняете.
The_Pristстанет запускать Вашу прогу на разных ПК из чистого exe
Знаете, я сначала подумал.
Если вы следили за тем, что я делаю(хотя думаю для вас это мало интересно), то я писал, что делаю это по двум причинам:
1) Мне это нравится
2) Упростить свою работу.
И так как мне за это никто не заплатит, то уж ладно, я поделиться могу, мне не жалко. НО, я установлю прогу со своей флешки, и ,кто сказал, что я дистрибут отдам? Вот поэтому и мучаюсь сейчас с серийником.

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

По поводу ключа windows хорошая идея, но ведь далеко не все лицензионные, или по-любому ключ должен быть? Если да, был бы признателен, если бы показали ,как его считать в VB6.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858585
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronя установлю прогу со своей флешки, и ,кто сказал, что я дистрибут отдамНе совсем тогда понял. Дистрибутив? Так если установочный файл только у Вас и прога не может быть установлена без него - нафиг вообще все эти манипуляции со считыванием серийников? Представьте, вот нет ни у кого дистрибутива для установки VB6. Только в магазине спец выезжает и устанавливает. Какой смысл считывать серийники, если установить можно только с участием специалиста, который обладает единственным в мире дистрибутивом для установки этой проги? А без установки файлы проги, естественно, не работают.
Или под дистрибутивом подразумевается тупо файл, задача которого перенести exe-шник на целевой ПК и записать в него серийник?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
'ПОЛУЧЕНИЕ КЛЮЧА Windows
Sub GetWinKey()
    Dim WshShell, regKey
    Dim DigitalProductId, Win8ProductName, Win8ProductID, Win8ProductKey, strProductKey
    
    Set WshShell = CreateObject("WScript.Shell")
    regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
    DigitalProductId = WshShell.RegRead(regKey & "DigitalProductId")

    Win8ProductName = "Windows Product Name: " & WshShell.RegRead(regKey & "ProductName") & vbNewLine
    Win8ProductID = "Windows Product ID: " & WshShell.RegRead(regKey & "ProductID") & vbNewLine 'это ключ Windows
    Win8ProductKey = ConvertToKey(DigitalProductId)
    strProductKey = "Windows 8 Key: " & Win8ProductKey
    Win8ProductID = Win8ProductName & Win8ProductID & strProductKey

    MsgBox (Win8ProductKey)
    MsgBox (Win8ProductID)
End Sub
 
Function ConvertToKey(regKey)
    Const KeyOffset = 52
    Dim isWin8, j, cur, y, Chars, winKeyOutput, Last, keypart1, Insert
    Dim a, b, c, d, e
    
    isWin8 = (regKey(66) \ 6) And 1
    regKey(66) = (regKey(66) And &HF7) Or ((isWin8 And 2) * 4)
    j = 24
    Chars = "BCDFGHJKMPQRTVWXY2346789"
    Do
        cur = 0
        y = 14
        Do
            cur = cur * 256
            cur = regKey(y + KeyOffset) + cur
            regKey(y + KeyOffset) = (cur \ 24)
            cur = cur Mod 24
            y = y - 1
        Loop While y >= 0
        j = j - 1
        winKeyOutput = Mid(Chars, cur + 1, 1) & winKeyOutput
        Last = cur
    Loop While j >= 0
    If (isWin8 = 1) Then
        keypart1 = Mid(winKeyOutput, 2, Last)
        Insert = "N"
        winKeyOutput = Replace(winKeyOutput, keypart1, keypart1 & Insert, 2, 1, 0)
        If Last = 0 Then winKeyOutput = Insert & winKeyOutput
    End If
    a = Mid(winKeyOutput, 1, 5)
    b = Mid(winKeyOutput, 6, 5)
    c = Mid(winKeyOutput, 11, 5)
    d = Mid(winKeyOutput, 16, 5)
    e = Mid(winKeyOutput, 21, 5)
    ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e
End Function
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858607
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristКакой смысл считывать серийники, если установить можно только с участием специалиста, который обладает единственным в мире дистрибутивом для установки этой проги?

Представьте:-
1) Установил
2) Юзер пошел в Program Files , взял папку с установленной прогой.
3) Закинул на др. ПК
4) Запустил - работает.

P/S- SN в довесок к моей супер защите с помощью dll и проверкой ключей Registry
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858613
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronПредставьте:-
иными словами:
The_Pristпод дистрибутивом подразумевается тупо файл, задача которого перенести exe-шник на целевой ПК и записать в него серийник?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858634
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Под дистрибутивом подразумевается:
1) Запись в реестр ключей, наличие которых будут проверяться в программе
2) Раскидывание dll с частью кода программы в системные папки. И проверка их наличия в программе.
3) Ну и тупо файл, задача которого перенести exe- шник на целевой ПК и записать в него серийник.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858653
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

За получение ключа огромное спасибо! Все работает!
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858672
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Так ключ Windows это ProductKey или ProductID ?
Судя по этой строке то ID это ключ?
Код: vbnet
1.
Win8ProductID = "Windows Product ID: " & WshShell.RegRead(regKey & "ProductID") & vbNewLine 'это ключ Windows
...
Рейтинг: 0 / 0
Получение серийника HD
    #38858824
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronAkinaсвойство SerialNumber для него тупой фэйк. ведь этот фэйк все-равно неизменен?
Это да. Но, кроме того, он катастрофически неуникален.
Вот, например, у моей системы Win32_BaseBoard.SerialNumber = "MB-1234567890". Пояснения требуются?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38859177
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina"MB-1234567890". Пояснения требуются?
Улыбнуло) Нет, не требуются.
Я воспользуюсь советом The Prist и еще ProcessorId буду брать
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860097
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Код: vbnet
1.
DigitalProductId = WshShell.RegRead(regKey & "DigitalProductId")



На этой строке выдает ошибку-"Не удается открыть для чтения раздел реестра"
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"

Вариант с ключом Windows можно похоронить?(
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860178
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

как бы...Смотря где собрались все это дело устанавливать. да и с серийником харда можно тогда похоронить, т.к. к Win32 тоже может быть закрыт доступ. Поэтому можете комбинировать: и серийник и версия и еще чего-нибудь. Что-нибудь да удастся получить. На крайняк можно попробовать брать дату создания каких-нибудь файлов(типа cmd.exe) в миллисекундах. Тоже более-менее уникальная величина. Правда, если Windows ломаный то тоже могут быть сюрпризы. Поэтому как вариант - закидывайте свою прогу в отдельную папку и считывайте время в миллисекундах создания этой папки. Зашивайте в прогу. На другом ПК такое же время и дату точно не получите. По крайней мере шанс весьма невелик. И даже если человек унесет на другой ПК - даты и время там тоже не совпадут.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860279
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristИ даже если человек унесет на другой ПК - даты и время там тоже не совпадут.

А если унесет вместе с этой папкой? Или это и имеется в виду.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860436
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

А если самому попробовать? Создайте папку на своем ПК и перенесите на другой. Посмотрите дату создания/изменения/модификации. Да даже в пределах одного ПК - скопируйте папку в другую директорию и гляньте...
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860470
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristА если самому попробовать?
Туплю, проверил уже.
Порыл в нете, нашел функцию - FileDateTime
Только подскажите пожалуйста, как указать, что это время вывести мне в миллисекундах?
Код: vbnet
1.
Debug.Print FileDateTime("C:\Windows")
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860486
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb-шный тип Date не поддерживает миллисекунды
так что придется опять плясать с бубнами вокруг API
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860509
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proтак что придется опять плясать с бубнами вокруг API
А если не плясать) и не мучить вас) Если взять, да и сохранить в строку как есть. Какая разница в миллисекундах будет значение или в том формате, в котором считает.

Тут для меня еще сложность в том, как указать имя папки так, чтобы VB6 ее нашел не зависимо от директории. Попробовал %windows% не проканало. Я конечно могу проверять по папке Windows ,но ведь и она может быть на диске d
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860516
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronЕсли взять, да и сохранить в строку как естьвремя создания папки можно поменять достаточно распространенными инструментами...

...посмотрел, FAR Manager позволяет видеть и менять даже и миллисекунды , так что опять же есть ли смысл в такой защите?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860525
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proесть ли смысл в такой защите?

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

А если я буду проверять вот так:
Код: vbnet
1.
Debug.Print FileDateTime(Environ("WINDIR"))


Кто догадается, что нужно поменять дату создания сист. папки
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860536
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronThe_Prist,

Код: vbnet
1.
DigitalProductId = WshShell.RegRead(regKey & "DigitalProductId")



На этой строке выдает ошибку-"Не удается открыть для чтения раздел реестра"
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"

Вариант с ключом Windows можно похоронить?(Вся идея защиты мертворожденная. От слова совсем.

Узким местом является проверка:
Код: vbnet
1.
2.
3.
4.
5.
If СуперУсловияВалидности = True then
    ПродолжаемРаботать()
Else
    Выход()
End If

В скомпилированном exe-файле она заменяется на
Код: vbnet
1.
Goto ПродолжаемРаботать()

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

Извращения с серийниками не имеют ни малейшего смысла.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860539
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
да и серийник харда легко меняется разными утилитами. Но для того, чтобы это делать надо знать наверняка, что это поможет в конкретно данном случае и не сделает неработоспособным другие программы.
да я вообще не понимаю зачем так корячится с защитой. Уверен, что ломать защиту в голову не придет никому из сотрудников. Программу же планируется распространять среди сотрудников отдельно взятой фирмы. В Инет её выкидывать пока не планируют - следовательно хватит любой мало-мальски стабильной защиты. Автор сейчас на защиту убьет времени больше, чем на весь проект. А сломать эту защиту нормальному хакеру...Только вот обычно ломают те программы, которые представляют интерес для многих. А программы разовые - нафиг не нужны никому и тратить время ни их взлом можно только из личного интереса. Но что-то мне подсказывает, что среди тех, кому будет распространяться эта программа, таких не найдется.
Однако возвращаясь к стойкости защиты: любую программу взломать не проблема. Находим в дебаге строку, отвечающую за стопор программы и тупо её комментируем. Это примитивно, но в данном случае сработает. Поэтому лучшая защита вместе со всеми этими считываниями данных железа - это логическое запутывание самого кода. Притом всего кода, а не только защиты. Чтобы сложнее было понять откуда что куда. Что, конечно, тоже не панацея, но увеличить стойкость проги ко взлому способно.

Ну и напоследок: затраты на защиту программы не должны превышать выгоды от этой программы. Однако я пользуюсь принципом, что защита должна мне по затратам стоить не более 15% от предполагаемой выгоды от программы. Исключения, наверное, только программы с очень полезными и востребованными алгоритмами. Но в таких программах и ценность составляет не программа, а сам алгоритм. И такие вещи надо защищать патентами, потому как взломают в любом случае...
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860628
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyУзким местом является проверка:
Код: vbnet
1.
2.
3.
4.
5.
If СуперУсловияВалидности = True then
    ПродолжаемРаботать()
Else
    Выход()
End If

Ну это если она устроена именно так. Что как минимум глупость.

У меня в одной программе условия валидности формировали блок используемых программой констант. Если валидность была кривая, константы получались ещё те, и программа работала более чем весело, выдавая просто замечательные результаты.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860637
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_PristShocker.Pro,
да и серийник харда легко меняется разными утилитами. Но для того, чтобы это делать надо знать наверняка, что это поможет в конкретно данном случае и не сделает неработоспособным другие программы.
Защита, основанная на знании нюанса, а не на стойкости самого средства защиты - ничтожна.
Потенциальный пользователь этой программы в конце-концов может знать ник автора (а это неудивительно, раз они работают в одной фирме) на sql.ru и спокойно прочитать эту ветку.

The_Prist
да я вообще не понимаю зачем так корячится с защитой. Уверен, что ломать защиту в голову не придет никому из сотрудников. Программу же планируется распространять среди сотрудников отдельно взятой фирмы. В Инет её выкидывать пока не планируют - следовательно хватит любой мало-мальски стабильной защиты. Автор сейчас на защиту убьет времени больше, чем на весь проект. А сломать эту защиту нормальному хакеру...Только вот обычно ломают те программы, которые представляют интерес для многих. А программы разовые - нафиг не нужны никому и тратить время ни их взлом можно только из личного интереса. Но что-то мне подсказывает, что среди тех, кому будет распространяться эта программа, таких не найдется.
Однако возвращаясь к стойкости защиты: любую программу взломать не проблема. Находим в дебаге строку, отвечающую за стопор программы и тупо её комментируем. Это примитивно, но в данном случае сработает. Поэтому лучшая защита вместе со всеми этими считываниями данных железа - это логическое запутывание самого кода. Притом всего кода, а не только защиты. Чтобы сложнее было понять откуда что куда. Что, конечно, тоже не панацея, но увеличить стойкость проги ко взлому способно.

Ну и напоследок: затраты на защиту программы не должны превышать выгоды от этой программы. Однако я пользуюсь принципом, что защита должна мне по затратам стоить не более 15% от предполагаемой выгоды от программы. Исключения, наверное, только программы с очень полезными и востребованными алгоритмами. Но в таких программах и ценность составляет не программа, а сам алгоритм. И такие вещи надо защищать патентами, потому как взломают в любом случае...
тут добавить нечего, ППКС
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860660
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaУ меня в одной программе условия валидности формировали блок используемых программой констант. Если валидность была кривая, константы получались ещё те, и программа работала более чем весело, выдавая просто замечательные результаты
А это идея
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860664
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, ну не все такие умные, как вы))
Если бы я ее делал, чтобы не взломали такие , как вы, то наверное и пошел бы совсем по другому пути.
Все-равно спасибо за советы и критику, ибо она никогда не бывает вредной
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860677
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaAntonariyУзким местом является проверка:
Код: vbnet
1.
2.
3.
4.
5.
If СуперУсловияВалидности = True then
    ПродолжаемРаботать()
Else
    Выход()
End If

Ну это если она устроена именно так. Что как минимум глупость.

У меня в одной программе условия валидности формировали блок используемых программой констант. Если валидность была кривая, константы получались ещё те, и программа работала более чем весело, выдавая просто замечательные результаты."Блок констант" судя по всему должен иметь набор единственно верных значений, а это означает, что их нельзя получить чистым матаном на основании данных серийного номера, следовательно условные конструкции таки наверняка используются. Единственная защита - в их количестве.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860691
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вставлю свои пять копеек:

можно сделать сложные функции проверки по частям/наборам неких идентификаторов по своему алгоритму.
функции вызывать в разных местах программы.
реагировать по исключениям , отдаваемым этими функциями проверки.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860726
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyУзким местом является проверка:
Код: vbnet
1.
2.
3.
4.
5.
If СуперУсловияВалидности = True then
    ПродолжаемРаботать()
Else
    Выход()
End If


В чем же здесь узкое место?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860755
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronВ чем же здесь узкое место?Т.е. сами не догадываетесь? Вам же даже написали - хакер тупо найдет именно это место и сделает обход этой проверки, либо просто её удалит. И скомпилирует файл уже без этой проверки.
Т.е. представьте это так(если программно не получается): для хакера Ваша программа - болото. Ваш If СуперУсловияВалидности - это условно топь в этом болоте(ну точнее сама топь, если буквально - Выход(). Но найдя одно, найдется и другое). И по болоту этому он хочет тропинку протоптать. Если пойдет напролом - утопнет. Если возьмет палочку, чтобы тыкать перед собой и искать топи - то обязательно найдет все топи, пометит флажочками. Проанализирует и либо проложит сверху веточек потолще, либо тропинку в обход.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860785
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristТ.е. сами не догадываетесь? Вам же даже написали - хакер тупо найдет именно это место и сделает обход этой проверки, либо просто её удалит. И скомпилирует файл уже без этой проверки.
Т.е. представьте это так(если программно не получается): для хакера Ваша программа - болото. Ваш If СуперУсловияВалидности - это условно топь в этом болоте(ну точнее сама топь, если буквально - Выход(). Но найдя одно, найдется и другое). И по болоту этому он хочет тропинку протоптать. Если пойдет напролом - утопнет. Если возьмет палочку, чтобы тыкать перед собой и искать топи - то обязательно найдет все топи, пометит флажочками. Проанализирует и либо проложит сверху веточек потолще, либо тропинку в обход.

Пфффф, так можно абсолютно любую прогу палочкой протыкать и веточек подложить
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860789
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameron,

именно об этом Вам и сказали. IOS и Windows ломают - а Вы хотите защитить свою :-)
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860800
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Pristименно об этом Вам и сказали. IOS и Windows ломают - а Вы хотите защитить свою :-)
Я же все понимаю)) Понимаю что сначала появляется вирус, а потом защита от него, или ключ к замку а потом уже сам замок.
Я же не написал - "Ребят привет, скиньте код, да такой, чтобы сами не взломали"
Уже говорил, что мои "СУПЕР" защиты для вас - улыбка, и не более. Но для меня это ВАХ. Ибо первое- я учусь, второе- думаю для тех, кому поставлю это тоже ВАХ. Захотят поломать - вперед. Кто ищет, тот всегда найдет. И если кто-то задастся целью, то обязательно сломает.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860803
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда чем не устраивает вариант с dll?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860810
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proтогда чем не устраивает вариант с dll?
Кто сказал что он меня не устроил?
Видимо я слишком азартный) Хотя не игрок в карты и тому подобное.
У меня это выглядит примерно так - сделал с dll, почесал маковку -мало, надо ЕЩЕ.
Решил с реестром - раскидывать ключи, сдела, почесал - мало, ЕЩЕ!
Примерно так, как в фильме приключения Шурика, где он тянул билеты, главное вовремя остановиться
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860814
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronAntonariyУзким местом является проверка:
Код: vbnet
1.
2.
3.
4.
5.
If СуперУсловияВалидности = True then
    ПродолжаемРаботать()
Else
    Выход()
End If


В чем же здесь узкое место?Я же написал в чем: 17153399

Если не понятно с первого раза, вряд ли будет понятно и со второго.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860830
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyЕсли не понятно с первого раза, вряд ли будет понятно и со второго.
Если нет желания объяснить с первого, то вряд ли вообще получится объяснить
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860834
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И я уже понял смысл The prist объяснил. С палочками и веточками мне понятнее
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860852
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy"Блок констант" судя по всему должен иметь набор единственно верных значений, а это означает, что их нельзя получить чистым матаном на основании данных серийного номера, следовательно условные конструкции таки наверняка используются. Единственная защита - в их количестве.
Да можно, можно. Простейший вариант - блок констант в бинарном виде обратимо шифруется (не тупым XOR, само собой, а чем-нить приличным) с использованием серийного номера и кладётся в ресурсы. При старте он дешифруется текущим серийным номером без проверки валидности результата и распихивается по переменным. Если серийный номер неверен - начинается веселуха. При грамотном построении кода дешифровки даже метод шифрования не определить... а само распихивание можно размазать по коду (скажем, каждый объект самостоятельно распихивает "свои" константы), да и в процессе выполнения периодически повторять дешифрование (кстати, почти любой идентификатор можно получить несколькими методами, общими только на уровне драйвера ядра) и проверять.

Тут другой вопрос - не станет ли защита дороже защищаемого объекта и потерь от его взлома.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860863
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это хороший вариант.

Я бы, правда, проверку все-таки делал (например контрольной суммы всех констант, условно говоря) и выдавал сообщение. А том мало ли, что прога может напартачить, диск, там, случайно отформатировать.

Ну а если хакер эту проверку отключил - то сам виноват, тогда начнется веселуха.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38860894
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina Простейший вариант - блок констант в бинарном виде обратимо шифруется (не тупым XOR, само собой, а чем-нить приличным) с использованием серийного номера и кладётся в ресурсы.То есть для каждой копии проги - свои ресурсы?

А что помешает выложить прогу с серийником, подходящим к ресурсам, в интернет?
...
Рейтинг: 0 / 0
Получение серийника HD
    #38861052
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЯ бы, правда, проверку все-таки делал (например контрольной суммы всех констант, условно говоря) и выдавал сообщение.
Вообще-то метод предполагает постоянную проверку всего блока или его части при различных операциях. При печати контролируется блок расчёта, при расчёте - блок построения отчёта, и так далее...

AntonariyА что помешает выложить прогу с серийником, подходящим к ресурсам, в интернет?Ага... и аппаратную часть для этой пары, чтобы она с серийником давала правильные хэши при дешифровке.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38861475
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Дистрибуция и активация через интернет что ли? Если так, то вопросов нет, я-то рассматривал оффлайн.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38863826
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, там по смыслу серийный номер железа подразумевался:
Akina...блок констант в бинарном виде обратимо шифруется ... с использованием серийного номера (железа) и кладётся в ресурсы.
...
Рейтинг: 0 / 0
Получение серийника HD
    #38863827
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А шифруется и кладется в ресурсы инсталлятором
...
Рейтинг: 0 / 0
108 сообщений из 108, показаны все 5 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получение серийника HD
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]