Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
ВнизHardware ID Найти похожие ветки
← →
Vir © (2005-07-23 13:52) [0]Хочу в прогу добавить защиту серийного номера который был бы привязан к конфигурации компа. Соответственно нужно сгенерировать некий Hardware ID из текущей конфигурации.
Так вот вопрос: как можно прочитать различные характеристики оборудования присущие компу?
Я так полагаю наиболее всего для этого подойдут серийные номера железа, т.е. мамка, проц может еще что.
← →
alpet © (2005-07-23 14:09) [1]Советую присмотреться к существующим решениям, вроде ASPPack и похожих на них. Только не надо предполагать, что аппаратная защита, написаная собственноручно (т.е. без опыта в создании антиотладочного кода) хоть на чуть-чуть будет гарантировать защиту от взлома (а программы написанные на HLL вроде Delphi ломаются легко, даже начинающими кракерами). Вобщем стоит поразмыслить стоит ли тратить время на изучение вопроса, если его надежность, стоит наряду с использованием серийного номера, вводимого с клавиатуры.
Есть еще одна печальная статистика - все защиты, насколько бы они небыли сложными, прежде всего создают проблемы легальным пользователям, а не пиратам.
← →
Vir © (2005-07-23 14:19) [2]
> alpet © (23.07.05 14:09) [1]
Да вполне согласен, но для личного опыта всеже хотел бы получить ответ на свой вопрос.
← →
alpet © (2005-07-23 14:31) [3]Vir © (23.07.05 14:19) [2]
Опыт дело полезное. Вот я тебе и пытаюсь сказать, что прибегать в делах защиты к документированным методам получения Hardware Info - все равно что распространять информацию как взломать программу (фактически программу можно будеть сломать автоматом). И надо заметить что документированных методов получения этой информации, весьма немного. Для создание сложной (сиречь небезнадежной) защиты, желательно освоить Native API (для NT систем), работу в режиме ядра (большинство нормальных защит строится на базе драйверов), основные и частные антиотладочные методы, и самое главное - освоить хотя бы на базовом уровне взлом существующих защит. Это не позволит понять, как сделать хорошую защиту, но даст представления как не сделать плохую. Нужно также принять к сведению, что защиты на HLL не пишуться, в большинстве случаев используется ассемблер, так что его тоже стоит изучить.
Ну и наконец множество полезных статей на эту тему можно найти на сайте http://www.wasm.ru
← →
Vir © (2005-07-23 15:15) [4]/alpet/ ты не во всем прав.
Вообще я имею базовые знания взломе. В данном случае не идет разговора антиотладочных методах.
Даже при получении Hardware Info стандартными способами программу нельзя взломать автоматом.
Принцип защиты основанной на серийном ключе и Hardware ID следующий:
Получаем N параметров железа (пусть даже стандартными методами) из них генерим некий ключ каким-то своим способом получаем Hardware ID который показываем пользователю.
Пользователь по нему может запросить серийник к программе.
Прога в свою очередь проверяет соответствие введенного серийного номера к Hardware ID. - вот это и есть самый тонкий момент. Именно взлом процедуры валидации серийника представляет опасность, все остальное (перехват получения HW и генерации ID) совершенно не представляет интереса не в защите не во взломе.
Не спорю антиотдалочный код нужен чтобы повысить устойчивость программы. Но я для себя решил что если взломом занимается человек способный вырвать алгоритм проверки серийка и написать генератор ключей значит он будет иметь представления и об более мение стандартных способах защиты, т.е. защиту в этом случае нужно делать весьма и весьма нетривиальную. Мне же на моем уровне достаточно чтобы пользователи не могли обмениваться серийными номерами.
← →
alpet © (2005-07-23 15:47) [5]Vir © (23.07.05 15:15) [4]
Т.е. если твою программу запустят под эмулятором используемого железа на которое прямо указывает "документированный" код, она все равно не взломается "автоматом". Впрочем все это сильно зависит от действительной среды - если планируется изолировать программу в некоторой ограниченной пользовательской среде, откуда она не попадет в сеть с припиской "помогите взломать", то защиту можно сделать очень простую, даже не обязательно основанную на HardwareID. В комплексе хватит просто суммы сведений о установленном на компе железе - типа обьем оперативы и hdd, модель процессора.
← →
Vir © (2005-07-23 16:08) [6]
> alpet © (23.07.05 15:47) [5]
теперь мы друг друга понимаем :)
И так мне надо получить максимум данных о установленном железе, как это сделать? Причем чем "НЕподвижнее" железо тем интреснее. Скажем объем памяти меняеться куда как чаще чем материнская плата или процессор.
← →
alpet © (2005-07-23 17:23) [7]Vir © (23.07.05 16:08) [6]
Имеет смысл поискать в сети исходники программ, что выводят всю информацию о установленном железе на борту компьютера.
← →
tesseract © (2005-07-23 21:34) [8]Лучше всего использовать аппаратные ключи. Тот же FIDUS от GUARDANT стоит чуть больше 10 баксов.
← →
alpet © (2005-07-23 21:58) [9]tesseract © (23.07.05 21:34) [8]
Есстно лучше, но только в том случае если программа стоит более 50 у.е.
← →
tesseract © (2005-07-24 19:43) [10]>> Есстно лучше, но только в том случае если программа стоит более 50 у.е.
ASPACk - 200 уё.
А к GURDANT весьма неплохой софт прилагается
← →
alpet © (2005-07-24 21:56) [11]tesseract © (24.07.05 19:43) [10]
Мда, недешево, если учитывать что он все-же ломается.
← →
kblc © (2005-07-25 11:05) [12]Вот по этому адресу лежит куча статей о том "как что-то получить"
http://delphiworld.narod.ru/_os_.html
Я же использовал сер. номер винта в савокупности с серийным номером материнской платы.
И ещё:
1) Эмулировать железо нельзя, просто нет смысла.
2) Взлом осуществляеться на основе хука на эти API функции или просто "прописываеться" уже в прогремме.
3) Взломать процедуру валидности не так уж и сложно - всё равно всё сходиться к выбору "да/нет", тем более что с использованием DeDe (Delphi Decompiler) не помогает стандартная try except end; (кто знает - поймёт)
4) alpet прав: взялся писать процедуру - пиши на ассемблере.
Желаю удачи
← →
alpet © (2005-07-25 11:28) [13]Наверное единственная защита которой я смогу хоть немного доверять - регулярная активация по сети (с параллельным обновлением защиты). В недорогих программах (в т.ч. и WinXP) она не продумана вобщем-то, поэтому и снимается легко.
← →
kblc © (2005-07-25 12:33) [14]Самая хорошая защита - защита на аппаратном уровне, т.е. когда кусок кода, а иногда и полностью вся программа находяться внутри какого-либо устройства. А как быть дальше - догадаться можно.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.011 c