![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Давайте все поделимся друг с другом мыслями как можно привязаться к железу и кто как это делает.
Но мой вопросс: как получить серийный номер винта (а не раздела который меняется приформатировании), или проца или оперативы? -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| sOckets |
|
|||
![]() ЖгуПоПонедельникам ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 24.8.2006 Где: ws2.lib Репутация: 1 Всего: 2 |
http://www.internals.com/ | Скачать
NtDriverList is a user-mode console application which takes advantage of the undocumented NtQuerySystemInformation API to obtain a list of loaded drivers under Windows NT. Source code is included ! Исходники на С++ , там WinAPI , думаю не трудно будет на дельфи переделать. Это сообщение отредактировал(а) sOckets - 29.9.2006, 17:43 -------------------- Я Будущий сотрудник Google Inc. Юзаем Google Code Search для поиска исходников. Юзаем GMail как почту. |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Отличие VolumeSerialNumber от серийника винта состоит в том, что первый назначается при форматировании раздела, и может совпадать на разных винтах. Второй - уникален для каждого винта, и получить его можно только с пом. утилиты аналогичной diskid32 (ссылку дал sOckets). -------------------- ![]() |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
mr.DUDA, я просто дал ссылку на пример получения инфы о железе
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Ok, а я просто заметил что, к сожалению, не всё решается штатными средствами (System.Management) З.Ы. подобную задачу пытаюсь решить в проекте, над которым работаю сейчас -------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Так скажите как хоть какойнибудь номер железа получить при помощи средст .NET
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Можно из реестра поднять, из раздела с инфой по драйверам.
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Да хоть тот же HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Ключ реестра это не очень хорошо, подменить можно, да и где же тут платформенная назависимость .нет???
А другого способа что нет? Добавлено @ 10:37 Да и если всю системму завиртуалить и на другую тачку перенести думаю защита и слетает! Добавлено @ 10:39 Или необходимый рег файл перед стартом проги запускать, это не затруднительно но думаю прогу обманит! -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Rapalex, что-то я сомневаюсь в работоспособности виндовоза с "поковырянными" этими разделами. Если их только назад не возвращать сразу после старта проги.
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Я проверять не буду но что же мешает назад всё вернуть, а что мы спотрим RegMon раскажет,
Но а главное Что будет если свиртулить всю системму, и при переходе на линукс? Добавлено @ 11:25
Зашол я по этому ключю и ничего не понятно! Как это можно вообще с чемто сопоставить!!! -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Есть ещё какие-нибудь варианты?
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Rapalex, спроси у Гугла как можно защитить свою прогу от взлома, он тебе даст кучу статей, несколько из них будут очень обширные и с примерами.
Возможно они быдут на ВыньАПИ и системных dll, но ничего страшного. Ведь платформенная независимость .Net --- это МИФ (если не миф, то потенциальная возможность, которая так и останется нереализованной, ИМХО) |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Я слышал что платформа mono реализовала переход на UNIX. -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Да, но только первый .Net, да и то не весь Самый главный аргумент --- MS это не надо, а если этим будут заниматься сторонние компании, то они все равно будут отставать от MS |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Модератор: Давайте вернёмся к теме обсуждения.
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 2 Всего: 8 |
Kefir, по поводу этой ссылки http://rsdn.ru/forum/message.aspx?mid=905667&only=1 скажу - ЛАЖА, я железо не менял, систему переставлял (на висту 64) и результаты изменились, такчто я бы не рекомендовал это как идентификацию железа.
sOckets, по поводу NtDriverList это я не смог собрать в студии, и както мне это не очень понравилось, да и не знаю как оно с вистой будет дружить или нет. Больше ссылок в топике небыло, я возврощаюсть после "длительного" отдыха и опять поднимаю вопросс. Хоть ктото свою мелкую но весьма полезную прогу привязывал (или покрайней мере хотел). ХЕЛП!!! -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Xao |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 24.12.2007 Репутация: 1 Всего: 1 |
да, мне тоже интересно, кто-нибудь решил эту проблему?
mr.DUDA, а как у тебя с проектом, ты как делал? |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Привязали к идентификатору HDD, используя driveId (скомпилированную в отдельную dll, вызов функций через [DllImport]).
-------------------- ![]() |
|||
|
||||
| Xao |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 24.12.2007 Репутация: 1 Всего: 1 |
mr.DUDA,
а ты не мог бы выложить пример или эту длл? если да, тогда опиши плз какие параметры должны быть в функции |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 11 Всего: 92 |
http://www.winsim.com/diskid32/diskid32.html - утилита (с исходниками на C) для получения инфы о винтах (в том числе и серйника).
Выдрать нужный код, думаю, проблем не составит. А вот способ взаимодействия с ним - вопрос спорный. Просто дллка + DllImport - уж слишком легко тупо подменить. В итоге вся привязка по сути отваливается. Наиболее, на мой взгляд, удачно было бы завязать то, что касается защиты в чистый анмэнеджед (за икслючением обращения непосредственно к дотнетовским вещам), но на C++/CLI. Полученную сборочку затем слинковать с самим приложением (ilmerge). В итоге этот код выдрать будет относительно проблемно (ну, всё в итоге прогать через оббфускатор - это уж само собой...) |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
Когда то криво написал фигнюшку.
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 11 Всего: 92 |
1. Сетевухи может не быть. MAC адресса соответственно тоже.
2. ProcessorId - не есть уникальный код. С CPUID заморочка, что уникальный серийник ИМХО только у интела получить можно, и то не на всех процах. 3. Ты получаешь серйник раздела, а не самого винта. Получение серийник раздела винта - не столь тривиально (через WMI не возможно). В сорсах утилы, приведённой мною выше работает (там нэтив) через DeviceIoControl и \\.\Scsi |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
Дада, само собой, прошу обратить внимание на мою фразу:
Это сообщение отредактировал(а) Kefir - 3.1.2008, 13:52 |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
+1 Там походу вообще дата/время создания раздела в серийник пишется AFAIK. Например если компания закупила 10 веников с отформатированными разделами, тогда будет 10 одинаковых серийников. Насчёт подмены длл - всё не так просто. Можно завязаться на содержимое длл: перед вызовом ф-ции через DllImport читать файл DLL, вычислять контрольную сумму и сравнивать с прописанной в коде проги. Если не совпадает, значит хакер Вася написал свою длл-ку. Говорим "привет Вася!" и завершаем работу. -------------------- ![]() |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 11 Всего: 92 |
mr.DUDA, в какой-то мере, конечно да, но (!) в любом случае мэнеджед код (в нормальном виде - фишки CLR Secure, скажем, делают по сути ненормальный менеджед
Протос анменеджед из-под C++/CLI (т. е. внедрённый непосредственно в дотнетовский бинариник) исследовать достаточно муторно. |
|||
|
||||
| Xao |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 24.12.2007 Репутация: 1 Всего: 1 |
Народ, я пробовал выдрать то, что мне нужно отсюда
http://www.winsim.com/diskid32/diskid32.html открыл проект в с++ хотел его собрать, так он стока ошибок выдает на C# еще можно было бы что-нить понять
вот например первая ошибка, что значит структура переопределена
HELP!!! |
||||
|
|||||
| Xao |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 24.12.2007 Репутация: 1 Всего: 1 |
с этой ошибкой разобрался, а вот такая ошибка:
в sprintf надо передавать char а в CreateFile LPWSTR пишет, что не может конвертировать |
||||
|
|||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Xao, вместо char использовать wchar_t, перед строковыми константами ставить букву L. Остальные вопросы - в раздел С++.
-------------------- ![]() |
|||
|
||||
| Xao |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 24.12.2007 Репутация: 1 Всего: 1 |
mr.DUDA,
ты говорил, что решил проблему привязки не мог бы ты скинуть ту длл плз и если можно, то пример получения серийного номера? У меня не получается сделать dll с этих исходников :( http://www.winsim.com/diskid32/diskid32.html я вот тут нашел, но тут только с правами админа http://www.sql.ru/forum/actualthread.aspx?...=346957&hl= там код примера на ВБ
а вот сама dll: http://www.sql.ru/forum/actualfile.aspx?id=3231663 помогите перевести этот код на С# плз!!! я тут начал делать, но не понял что надо сделать со вторым параметром в функции
|
||||
|
|||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Сорри, сейчас этого кода у меня нет (остался на предыдущей работе)... :(
-------------------- ![]() |
|||
|
||||
| Xao |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 24.12.2007 Репутация: 1 Всего: 1 |
mr.DUDA,
жаль( а ты не мог бы показать пример использования этой длл, если помнишь? хотел еще спросить существуют ли проги, которые бы смогли изменить Drive Model Number (disk32.exe), или Product ID, жесткого диска |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Всё сводится к получению серийника HDD, я просто взял стандартный идущий пример вместе с diskId и завернул его в экспортируемую функцию из DLL. -------------------- ![]() |
|||
|
||||
| Xao |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 24.12.2007 Репутация: 1 Всего: 1 |
||||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
ммм... можно ли программно изменить вшитый аппаратно productId? ИМХО, нельзя. И ваще, цель подобной программы что-то не особо понятна...
-------------------- 3 ГОДА НА |
|||
|
||||
| Любитель |
|
||||||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 11 Всего: 92 |
Утила немного крива написана
По ходу у тебя пример для VB6. Он сильно отличается от дотнетовского (конкретно судить не могу - ибо не знаю
То есть с приведённой длл-кой (судя по сигнатурам, по крайней мере) - юзать ансейф. И передавать адрес структуры соответствующей. Вообще, по-моему эта длл-ка основана на тех же исходниках (все дороги ведут туда...) - проще "подправить" анменеджед функцию, чтобы она приняла удобный для тебя вид (чтобы всё тупо промарашллить можно было). Плюс к тому заметь - в тех сорсах три функции. Не знаю, что там в 9x, но в нт-шках: 1. Одна работает лишь с админскими правами 2. Вторая не работает с саташными винтами :( Нормально рабочая (в моём понимании - т. е. без админских прав и с любыми винтами) - та, которая юзает \\.\Scsi |
||||||
|
|||||||
| AGENTxXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 8.6.2009 Репутация: нет Всего: 1 |
Надеюсь кому-нибудь пригодится в будующем (т.к. вопрос вроде бы как не решен тут). Код проги которая выдает необходимую информацию:
Добавлено через 1 минуту и 49 секунд И да.. вот ссылочка где можно взять необходимые переменные для запроса (ну или использовать другой запрос): MSND |
|||
|
||||
| SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
AGENTxXx у меня твой код неработает, выбрасывает ManagementException - неправильный запрос.
Пытаюсь найти в MSND причину. Я эту тему неочень, но интересно... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |