![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Привязка программы к компьютеру [D5, Win95/98]
Друпи © (2002-09-03 23:18:00)Ув. Мастера!!!
Мне надо мою програмку привязать к моему компу.
Причем так (по возможности), чтобы ее можно было привязать (лично мне) к другому компьютеру (или к примеру к моему же, после апгрейда ОС или железа).
msts (2002-09-06 11:05:00) [1]Если сможешь решить эту задачу (привязка программы к "рабочему месту") смело проси за это 10 000 000$ как ни как сотни фирм и десятки корпораций тратят на решение этой проблемы миллионы баксов и кстати абсолютный результат = 0 иначе ты бы не сидел на XP Professional и точно не юзал Delphi :(
но конечно есть относительный результат состовляющий 17% от абсолютного, но это так отступление (которое ты и так знаешь)
в общем возьми ручку и лист бумаги (так делают все матера :))- раздели его по полам линией с одной стороны опиши типовую конфигурацию "рабочего места" - установленного на него програмного и аппаратного обеспечения (если прога стоящая то и особенные требования найдутся) на другой половине опиши какие изменения (и какова их степень) приводит к тому что теперь это _другое_ рабочее место и есть основание заявить о необходимости переустановки проги в общем решил для себя - что
значит "запустили прогу на другом компе"
(в качестве источника я бы использовал глобальную таблицу атомов, если установленна винда)
далее определился бы с форматом хранения этой информации и способа интеграции в код программы для наибольшей зависимости (придется написать свой линковщик)(можно использовать java П-код и генерить на нем часть проги - выполнять в другом потоке исползуя какую нибудь JVM)
далее я бы применил нейронные сети (в частности распознования образов) для анализа этого описания - что позволяет сделать более мягкую проверку на изменения конфигурации, с каждым запуском нужно сохранять результат анализа то есть новую конфигурацию (получится как бы фотография компа с шумом - а твоя прога будет распозновать в ней тот комп на который ее поставили и если не узнает то заявить о переустановки, но комп стареет/изменяется но если эти изменения затронули 50 из 1000 атрибутов то это нормально иначе... ) при этом должно быть накопление (в разумных пределах) результатов анализа и переодической смены эталона с которым сравнивать - комп стареет а прога его узнает (как человек постоянно видящий другого не замечает изменений а стоит возникнуть перерыву - то уже нужно узнавать)
что дают нейронные сети (НС) - сложность трассировки (прямо скажем нихрена непонятно) интеграция в нее своего кода (полезного так сказать) достаточно проста в связи с компонентной архетиктурой делфы, так же можно сделать зависимость от степени узнования - степень ограничений на функциональность проги,
так как в НС нет прямых переходов - если иначе - то банальная замена инструкций не поможет крякеру, снимок проги из памяти тоже, знание НС "не дает нихрена" (Цой) , в общем полиморфная прога на критериях зависящих от конфигурации компа.
осталось защитить генератор НС - для этого система будет состоять из 3х частей
1 - программа установки - ПУ
2 - сама программа - П
3 - генератор НС - ГНС
клиенту высылается ПУ и П - она формирует предварительное описание (ПО) раб места - передает разработчику - на основе этого ПО - генератор формирует НС и высылает назад - ПУ вшивает НС в П (ну вариации на твое усмотрение), таким образом разработчику нужно защищать только ГНС
если НС имеет 1000 узлов/нейронов помноженных на 10 связей-синапсов и того 10 000 конструкций - если/иначе - крякеру будет грусно
а теперь представь на сколько должна быть стоящей твоя прога?
а с другой стороны можно потратить 5 месяцев - наваять ~ 35 000 строк кода в скомпиленном виде ~15кб - сделать компонент для дельфы и продать за выше указанную сумму какой нибудь корпорации
DC-AC (2002-09-06 07:05:00) [2]ruslanyd
>если у клиента летят каждый день винты, то это проблема клиента или производителя этих винтов
Но Вы же, предположим, ПРОДАЛИ человеку программу ? И КИНЕТЕ его при первом же "помирании" винта ? Видимо Вам неизвестна проблема винтов Fujitsu MPG :-)
vasya_dvc
>Можешь к серийнику процессора привязаться
А это ещё что такое ? То, что написано на нём на бумажной наклеечке ? :-)
>Я за своё короткое время пребывания перед монитором не встретил ни одной проги, которая его бы получала ...
Эта тема уже неоднократно здесь перетиралась, по-моему примеры получения s/n винта чуть ли не на каждом углу висят бооольшими буквами.
Друпи (2002-09-05 23:13:00) [3]Только что родилась тупейшая идея:
привязываться к первому попавшемуся BAD-BLOCKу винта и если он "исправился", то не грузиться.
vasya_dvc (2002-09-05 22:12:00) [4]Можешь к серийнику процессора привязаться ... Если человек поменял проц - то прога лечится простой переустановкой, о чём она сама может ему с радостью об этом сообщить (любезно выдвинув лоток CD). К тому-же ... не так часто юзер процессоры меняет! Насчёт матери - не знаю.
Тут возникает проблема защиты дистрибутива. Есть один из путей ... Человек шлёт заяву на покупку твоей проги. Ты ему кидаешь программу, считывающую серийник проца и создающую каким-либо образом ключ. Всё ему честно объясняешь: "запусти эту прогу там, где ты её хочешь ставить. А полученый ключик шли мне обратно" . Дальше надеюсь понятно ... Путей обхода кроме прямого disasm я не вижу, а желающих этим заниматься не так уж и много (учитывая современное законодательство, за это можно небо клетчатое увидеть).
Насчёт серийника винта - а он там точно есть? Я говорю не про серийный номер, генерируемый при его (HDD) форматировании, а про такой, что невозможно изменить. Я за своё короткое время пребывания перед монитором не встретил ни одной проги, которая его бы получала ...
ruslanyd (2002-09-05 17:45:00) [5]неужели на сегодня нет способа программным путем прочитать серийный номер производителя винта или матери?
ruslanyd (2002-09-05 17:31:00) [6]2 Gibbel
почему 10 лет?
на винтах производства, отличного от WD, где-то 2-х годовалой давности SMART мало где присутствовал
и таких компьютеров сейчас в эксплуатации масса
2 DC-AC
если у клиента летят каждый день винты, то это проблема клиента или производителя этих винтов, а электронные ключи - это неоправданные дополнительные затраты для того же клиента,
т.к. и этот способ защиты тоже не панацея
DC-AC (2002-09-05 15:30:00) [7]Мда... Всё в лучшем духе Microsoft и его XP. Им можно, а мы значит ничем не хуже. Печально всё это.
Я работаю в компьютерном сервисе, доводилось ездить на выезды к клиентам, ну не доводилось мне за 4 года встречать компа, на котором оба COM, один LPT и (как минимум) два USB были заняты.
Сорри если развожу флейм, для меня тема исчерпана, пошёл работать.
Gibbel (2002-09-05 14:51:00) [8]2 DC-AC: По-моемому речь шла о привязке программы к компу, т.е. к ее "железу"... Железо имеет свойство накрываться. Вопрос в том, что привязывать можно не только к харду, но и к остальному оборудованию, и, если какое-либо оборудование меняется, подстраиваться под новую систему. То есть, можно отслеживать, скажем, мамку, тип проца (инфу, полученную с помощью команды CPUID), тип и серийный номер харда(ов), сидюка(ов), и т.д... И, если изменения в системе незначительные, самостоятельно подстраиваться под новую систему.
А насчет методов с ключами, то тут куча проблем - например, нету у меня свободных портов... И попробуй тут что-либо возразить... В результате, можно только снизить популярность своего проекта.
2 ruslanyd: не думаю, что сейчас кто-либо пишет программы под винды, расчитывая на то, что им придеться работать на компах старше 10 лет.
ruslanyd (2002-09-05 14:27:00) [9]технология SMART изначально использовалась только на винтах WD
и то с определенного времени
позже они лицензировали ее другим производителям (но далеко не всем), т.е. привязка, выполненная таким образом, будет не универсальная
DC-AC (2002-09-05 14:25:00) [10]Сегодня я поставил программу на свой винт, она благополучно к нему "привязалась". Завтра я меняю винт и пишу разработчику "типа у меня винт кирдык, Fujitsu MPG и всё такое", шли опять по новой. Послезавтра повторяется та же история. ПРЕДПОЛОЖИТЕ дальнейшие действия разработчика и меня...
Gibbel (2002-09-05 14:18:00) [11]2 ruslanyd с помощью этой технологии мы можем получить информацию _УНИКАЛЬНУЮ_ для данного устройства, в частности дисков IDE
ruslanyd (2002-09-05 13:38:00) [12]Именно!
я же сказал, что сам заинтересован в способах привязки софта к железу, а для того, чтобы ее сделать надежной в какой-то степени, надо знать хотя бы простые способы ее обхода
2 Gibbel
а при чем здесь технология SMART ?
Gibbel (2002-09-05 13:19:00) [13]2 ravi: Профи сломает любую защиту. Вопрос в том, чтобы заставить его что-либо ломать, и чтоб этот процесс занял как можно больше времени и сил.
Anatoly Podgoretsky (2002-09-05 13:06:00) [14]raiv © (05.09.02 11:55)
ruslanyd (05.09.02 12:59)
Мы не о креках говорим
ruslanyd (2002-09-05 12:59:00) [15]сам заинтересован в способах привязки софта к железу (винту или маме), но хотелось бы узнать все-таки более эффективные способы,
чем getvolumeinformation.
Серийник тома, который она возвращает, подменяется diskedit-ом за 30 сек. на любой интересующий
можно и более доступным способом
ghost сделает сколько угодно клонов этого винта, на которых ваш софт будет работать ничего не заметив - плакали ваши денежки ;)
2 TCrash
>на 286х по какому-то адресу памяти(адрес не помню)
>содержалась 8ми байтовая константа (записать по этому
>адресу ничего не удавалось)
этот серийник был прописан в самом конце адресного пространства Conventional памяти, и находился в ПЗУ биоса, но под NT/2000
прямого доступа физ. памяти нет :(
Anatoly Podgoretsky (2002-09-05 11:59:00) [16]Сходил и с удовольствием прочитал, хорошая статья и к тому же не умалчивает о проблемах "SMARTVSD Troubleshooting Checklist"
raiv (2002-09-05 11:55:00) [17]Не ломай голову! Профи всеравно крякнет твою защиту, а для чайника скачай компонент AVLGold c этого форума.
http://www.delphipages.com/edit/count.cfm?ID=3190&E=1342
И пользуйся на здоровье!
Gibbel (2002-09-05 11:51:00) [18]2 Anatoly Podgoretsky - выб по ссылочке сходили... Это я о "
> гарантировано работает, без дополнительных драйверов/модулей
> не в пример серийному номеру жесткого диска.
"
Anatoly Podgoretsky (2002-09-05 11:34:00) [19]А какая разница, нормальную программу также придется переинсталлировать после смены диска, переформатирования, а плюч состоит в том, что это гарантировано работает, без дополнительных драйверов/модулей не в пример серийному номеру жесткого диска.
Vladislav (2002-09-05 11:08:00) [20]Еще уточнение getvolumeinformation номер не диска, а тома, т.е. для C:, D: номер будет разный.