Как защитить дискету от копирования?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.50] |
|
|
Перед отправкой сообщения внимательно прочтите правила раздела!!!

Как защитить дискету от копирования?
|
Сообщ.
#1
,
|
|
|
|
Как можно защитить дискету от копирования так, чтобы она выступала как бы уникальный ключ для запуска программы или сделать ее ключом без записи на нее каких либо данных?
Мне нужно чтобы даже если мою дискету и скопируют, то с ее помощью нельзя было бы запустить прогу на другом компьютере...Если у кого нибуть есть кусочек кода или какие мысли(советы) по этому поводу, то пожалуйста напишите... Заранее благодарен... |
|
Сообщ.
#2
,
|
|
|
|
Цитата Sewell @ СД полностью удовлетворяет данному условию. А дискета - пережиток прошлого. На моем компьютере, например, нет дисковода для дискет. сделать ее ключом без записи на нее каких либо данных? |
|
Сообщ.
#3
,
|
|
|
|
Можно попробовать привязаться к серийному номеру дискеты
![]() ![]() procedure TForm1.Button1Click(Sender: TObject); var SerialNumber:DWORD; MaxLen,Flags:Cardinal; s:string; begin if GetVolumeInformation('A:\',nil,0,@SerialNumber,MaxLen,Flags,nil,0) then begin s:=IntToHex(SerialNumber,0); s:=copy(s,1,4)+'-'+copy(s,5,8); ShowMessage('Volume serial number: '+s) end; end; Но в его полной уникальности есть большие сомнения, хотя может тебе этого и будет достаточно... |
|
Сообщ.
#4
,
|
|
|
|
Цитата Sewell @ Как можно защитить дискету от копирования так, чтобы она выступала как бы уникальный ключ для запуска программы или сделать ее ключом без записи на нее каких либо данных? ИМХО очень не надежная защита, ибо все что можно записать, можно также и прочитать и сделать идентичную копию. Можете попробовать старый трюк - делаете в дискете пару тоненьких дырочек иголкой, форматируете и битые сектора(там где дырки) использовать номера секторов как ключи. Можно даже пытаться считать битый сектор, где будут не FF а случайные данные и брать их как ключ-обманку (не надежно данные плавающие). но в самой програме надо быдет закрутить код так чтобы не выдавать, что вы опираетесь на битые сектора. хотя помнится во времена доса была утилитка которая умудрялась делать даже с таких дискет копии. Тоже самое можно проделать и СД. Еще идейка: Многие флэшки поддерживают скрытый раздел по паролю, т.е. там вы можете держать ключи для рашифровки рабочего кода, и только ваша программа будет знать пароль на скрытый раздел. ИМХО тема напрашивается в софтваре протекшн раздел. Более по теме. |
|
Сообщ.
#5
,
|
|
|
|
на 1.44 дискетах можно юзать кроме 80 стандартных еще три дорожки...
Цитата AlexJ @ хотя помнится во времена доса была утилитка которая умудрялась делать даже с таких дискет копии. ой сомнительно.. разве что висеть резидентом и перехватывать нужные вызовы, моделируя физические дефекты дискеты... |
|
Сообщ.
#6
,
|
|
|
|
Цитата e-moe @ ой сомнительно.. разве что висеть резидентом и перехватывать нужные вызовы, моделируя физические дефекты дискеты... нет, та програмка просто делала дубликаты, причем очень успешно не помню кажется Fd или FDA че-то в этом духе называлась, копировала именно физический образ(и нестандартные сектора тоже) |
|
Сообщ.
#7
,
|
|
|
|
Цитата AlexJ @ не помню кажется Fd или FDA че-то в этом духе называлась, копировала именно физический образ(и нестандартные сектора тоже) Да, это был Floppy Disk Analyzer, но даже ему не под силу скопировать физические дефекты как-то: Цитата AlexJ @ Можете попробовать старый трюк - делаете в дискете пару тоненьких дырочек иголкой... |
|
Сообщ.
#8
,
|
|
|
|
FDA работала напрямую с флоповодом, поэтому читала не на уровне ОС а без анализа напрямую, что пришло на считывающую головку то и читала, поэтому с дырки считывался не FF(как обычно заполняет формат) а мусор. После анализа считаного блока мусора можно определить грани начала дырки и конец. Т.е. серия идет FF FF .... потом мусор и опять FF FF FF . Записав предварительно перед проколом дискеты сектора не значением FF а своими данными,например 01,02,03....511,513 можно точно выяснить где дырка. Это идеальный конечно случай - чисто для примера. реально же дырка захватывает несколько секторов и флоповоду чтобы сориентироваться где он есть на текущем трэке нужен еще маркер начала сектора и идентификация сектора(его текущий номер на трэке грубо говоря). Так что было бы желание, а привязаться есть к чему. Другое дело что в досе можно было прикрутить модуль который тоже из програмы читал бы напрямую с флоповода, а с виндой такой вариант не пройдет. Хотя можно конечно попробовать поставить драйвер типа ntport, giveio, winio и им подорбные, но это уже отдельный разговор. -Added Цитата e-moe @ Да, это был Floppy Disk Analyzer, но даже ему не под силу скопировать физические дефекты Все правильно. дефекты (точнее дырку) он не копировал, но структуру секторов на трэке востанавливал полностью(почти) и заливал место на дубликате аля-дырки тоже мусором и в нужном месте. Другое дело что были защиты использующие при записи варварский способ - после того как флопик ловил сигнал синхронизацию с официальной синхронизирующей дырки тогда кратковременно выключалось питание на мотор и запись контрольного кода производилась в момент инерционого вращения шпинделя(соответственно програма читающая такую защиту читала в таком же режиме. Естественно константу тайм-гейта которая использовалась как время отключения мотора могла знать только программа защиты. Были также мудрецы, которые издевались на флоповодом, делая вторую синхронизирующую дырку в дискете, нарушая логику работы флоповода, и записывая вообще по неведомому -собственному стандарту. Муторность этих методов состоит в том что очень большой разброс в механических параметрах разных флоповодах. |
|
Сообщ.
#9
,
|
|
|
|
Цитата AlexJ @ Т.е. серия идет FF FF .... потом мусор и опять FF FF FF . Если не менять умолчания то на отформатированной дискете незанятные кластера заполнены кодом F6 а не FF... Цитата AlexJ @ реально же дырка захватывает несколько секторов... у меня меньше 3х соседних дорожек испортить не удавалось... Добавлено Цитата AlexJ @ Все правильно. дефекты (точнее дырку) он не копировал, но структуру секторов на трэке востанавливал полностью(почти) и заливал место на дубликате аля-дырки тоже мусором и в нужном месте. я когда делал проверку на физическую маркировку при нахождении "битого" блока читал его, перезаписывал другим значением, снова читал сравнивал и делал выводы.. На рабочей дискете без физических меток эта копия, что делает FDA ничего не дает(всмысле что если маркированную дискету скопировать на новую то моя проверка это обнаружит)... |
|
Сообщ.
#10
,
|
|
|
|
Цитата e-moe @ Если не менять умолчания то на отформатированной дискете незанятные кластера заполнены кодом F6 а не FF... Цитата у меня меньше 3х соседних дорожек испортить не удавалось... Не фига себе !!! У меня с помощью иголки меньше 5 никогда не получалось Цитата я когда делал проверку на физическую маркировку при нахождении "битого" блока читал его, перезаписывал другим значением, снова читал сравнивал и делал выводы.. На рабочей дискете без физических меток эта копия, что делает FDA ничего не дает(всмысле что если маркированную дискету скопировать на новую то моя проверка это обнаружит)... Это если делать такую проверку и анализировать каждую испорченую дискету , большинство же защит базировалось просто на номере битого сектора, номере битого трэка, иначе процесс тиражирования дискет-ключей очень долгий получается.Вообще по теме, при нынешней цене на микроконтролеры, зашивать блоки программы в него и востанавливать ИМХО гораздо надежнее. Восьми лапковые контролеры запросто помещаются в разьем RS-232, а протокол обмена с контролером шифровать плавающим ключом. Можно вообще не изголяться а взять готовые красивенькие аппаратные USB,RS-232,LPT ключи и использовать в системе защиты. |
|
Сообщ.
#11
,
|
|
|
|
Цитата AlexJ @ Не фига себе !!! У меня с помощью иголки меньше 5 никогда не получалось раскаленная невидимка |
|
Сообщ.
#12
,
|
|
|
|
Любая дискетная защита ломается за нефиг делать. Начиная от метки дискеты (я такую защиту однажды видел - в метке хранилось кол-во оставшихся установок
) и заканчивая нестандартным форматированием. Все что можно прочитать - можно записать. согласен.Причем прочитать это можно даже из 83го сектора итп. Я этой хренью когда-то страдал юзая модули Фаронова для TP7.1 1 варниант - генерировать номер из серийника чего-то, в ответ другой номер активации. Хотя это тоже хукается. 2 вариант - дырки, но это надо ставить на конвеер. Записать цифры - продырявить - считать цифры - записать ini файл с адресами дырок - форматнуть дискету - записать на нее прогу и ini файл. Время на 1 дискету прикинули? См. 1 вариант =) |