Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хочу привязаться к железу, как? 
:(
    Опции темы
Rapalex
Дата 12.10.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 2
Всего: 8



Цитата(ivashkanet @  12.10.2006,  13:05 Найти цитируемый пост)
платформенная независимость .Net --- это МИФ

Я слышал что платформа mono реализовала переход на UNIX.



--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
ivashkanet
Дата 12.10.2006, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Rapalex @  12.10.2006,  15:00 Найти цитируемый пост)
Я слышал что платформа mono реализовала переход на UNIX.

Да, но только первый .Net, да и то не весь smile и кривовато. Поищи инфу на форуме по этой теме.
Самый главный аргумент --- MS это не надо, а если этим будут заниматься сторонние компании, то они все равно будут отставать от MS  smile  smile 

PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 12.10.2006, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Модератор: Давайте вернёмся к теме обсуждения.


--------------------
user posted image
PM MAIL WWW   Вверх
Rapalex
Дата 10.2.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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)
PM ICQ   Вверх
Xao
Дата 30.12.2007, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 24.12.2007

Репутация: 1
Всего: 1



да, мне тоже интересно, кто-нибудь решил эту проблему?

mr.DUDA, а как у тебя с проектом, ты как делал?

 smile 

 smile 
PM MAIL   Вверх
mr.DUDA
Дата 31.12.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Привязали к идентификатору HDD, используя driveId (скомпилированную в отдельную dll, вызов функций через [DllImport]).


--------------------
user posted image
PM MAIL WWW   Вверх
Xao
Дата 2.1.2008, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 24.12.2007

Репутация: 1
Всего: 1



mr.DUDA, 
а ты не мог бы выложить пример или эту длл?
если да, тогда опиши плз какие параметры должны быть в функции
PM MAIL   Вверх
Любитель
Дата 2.1.2008, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



http://www.winsim.com/diskid32/diskid32.html - утилита (с исходниками на C) для получения инфы о винтах (в том числе и серйника).

Выдрать нужный код, думаю, проблем не составит. А вот способ взаимодействия с ним - вопрос спорный. Просто дллка + DllImport - уж слишком легко тупо подменить. В итоге вся привязка по сути отваливается. Наиболее, на мой взгляд, удачно было бы завязать то, что касается защиты в чистый анмэнеджед (за икслючением обращения непосредственно к дотнетовским вещам), но на C++/CLI. Полученную сборочку затем слинковать с самим приложением (ilmerge). В итоге этот код выдрать будет относительно проблемно (ну, всё в итоге прогать через оббфускатор - это уж само собой...)


--------------------
PM MAIL ICQ Skype   Вверх
Kefir
Дата 3.1.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



Когда то криво написал фигнюшку.
Код

        private string GetHDSerial()
        {
            ManagementObject disk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"C:\"");
            PropertyData diskPropertyA = disk.Properties["VolumeSerialNumber"];
            return diskPropertyA.Value.ToString();
        }

        private string GetCPUId()
        {
            string cpuInfo = string.Empty;
            string temp = string.Empty;
            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                if (cpuInfo == string.Empty)
                {
                    cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
                }
            }
            return cpuInfo;
        }

        private string GetMac()
        {
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                if ((bool)mo["IPEnabled"] == true)
                    return mo["MacAddress"].ToString();
            }
            return "";
        }

PM MAIL WWW Skype   Вверх
Любитель
Дата 3.1.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



1. Сетевухи может не быть. MAC адресса соответственно тоже.

2. ProcessorId - не есть уникальный код. С CPUID заморочка, что уникальный серийник ИМХО только у интела получить можно, и то не на всех процах.

3. Ты получаешь серйник раздела, а не самого винта. Получение серийник раздела винта - не столь тривиально (через WMI не возможно). В сорсах утилы, приведённой мною выше работает (там нэтив) через DeviceIoControl и \\.\Scsi


--------------------
PM MAIL ICQ Skype   Вверх
Kefir
Дата 3.1.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



Дада, само собой, прошу обратить внимание на мою фразу:
Цитата(Kefir @  3.1.2008,  10:50 Найти цитируемый пост)
Когда то криво написал фигнюшку.



Это сообщение отредактировал(а) Kefir - 3.1.2008, 13:52
PM MAIL WWW Skype   Вверх
mr.DUDA
Дата 3.1.2008, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Любитель @  3.1.2008,  12:18 Найти цитируемый пост)
3. Ты получаешь серйник раздела, а не самого винта.

+1
Там походу вообще дата/время создания раздела в серийник пишется AFAIK. Например если компания закупила 10 веников с отформатированными разделами, тогда будет 10 одинаковых серийников.

Насчёт подмены длл - всё не так просто. Можно завязаться на содержимое длл: перед вызовом ф-ции через DllImport читать файл DLL, вычислять контрольную сумму и сравнивать с прописанной в коде проги. Если не совпадает, значит хакер Вася написал свою длл-ку. Говорим "привет Вася!" и завершаем работу.


--------------------
user posted image
PM MAIL WWW   Вверх
Любитель
Дата 3.1.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 11
Всего: 92



mr.DUDA, в какой-то мере, конечно да, но (!) в любом случае мэнеджед код (в нормальном виде - фишки CLR Secure, скажем, делают по сути ненормальный менеджед smile ) исследовать в разы проще. Впрочем, это уже явно не
Цитата(Любитель @  2.1.2008,  23:32 Найти цитируемый пост)
легко тупо подменить


Протос анменеджед из-под C++/CLI (т. е. внедрённый непосредственно в дотнетовский бинариник) исследовать достаточно муторно.


--------------------
PM MAIL ICQ Skype   Вверх
Xao
Дата 10.1.2008, 04:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 24.12.2007

Репутация: 1
Всего: 1



Народ, я пробовал выдрать то, что мне нужно отсюда 
http://www.winsim.com/diskid32/diskid32.html
открыл проект в с++
хотел его собрать, так он стока ошибок выдает  smile 
на C# еще можно было бы что-нить понять

Код

Error    1    error C2011: '_IDEREGS' : 'struct' type redefinition    c:\...\projects\diskid\diskid32.cpp    81    diskid32
Error    2    error C2011: '_SENDCMDINPARAMS' : 'struct' type redefinition    c:\...\projects\diskid\diskid32.cpp    96    diskid32
Error    3    error C2011: '_DRIVERSTATUS' : 'struct' type redefinition    c:\...\projects\diskid\diskid32.cpp    114    diskid32
Error    4    error C2011: '_SENDCMDOUTPARAMS' : 'struct' type redefinition    c:\...\projects\diskid\diskid32.cpp    125    diskid32
Error    5    error C2079: 'scip' uses undefined struct '_SENDCMDINPARAMS'    c:\...\projects\diskid\diskid32.cpp    242    diskid32
Error    6    error C2664: 'DoIDENTIFY' : cannot convert parameter 2 from 'int *' to 'PSENDCMDINPARAMS'    c:\...\projects\diskid\diskid32.cpp    259    diskid32
Error    7    error C2027: use of undefined type '_SENDCMDOUTPARAMS'    c:\...\projects\diskid\diskid32.cpp    264    diskid32
Error    8    error C2227: left of '->bBuffer' must point to class/struct/union/generic type    c:\...\projects\diskid\diskid32.cpp    264    diskid32

и т.д и там их куча


вот например первая ошибка, что значит структура переопределена
Код

   //  IDE registers
typedef struct _IDEREGS
{
   BYTE bFeaturesReg;       // Used for specifying SMART "commands".
   BYTE bSectorCountReg;    // IDE sector count register
   BYTE bSectorNumberReg;   // IDE sector number register
   BYTE bCylLowReg;         // IDE low order cylinder value
   BYTE bCylHighReg;        // IDE high order cylinder value
   BYTE bDriveHeadReg;      // IDE drive/head register
   BYTE bCommandReg;        // Actual IDE command.
   BYTE bReserved;          // reserved for future use.  Must be zero.
} IDEREGS, *PIDEREGS, *LPIDEREGS;


HELP!!!

PM MAIL   Вверх
Xao
Дата 10.1.2008, 04:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 24.12.2007

Репутация: 1
Всего: 1



с этой ошибкой разобрался, а вот такая ошибка:

Код

Error    2    error C2664: 'CreateFileW' : cannot convert parameter 1 from 'char [256]' to 'LPCWSTR'    c:\...\projects\diskid2\diskid2\diskid32.cpp    545    diskid2


Код

      char driveName [256];

      sprintf (driveName, "\\\\.\\PhysicalDrive%d", drive);

         //  Windows NT, Windows 2000, Windows XP - admin rights not required
      hPhysicalDriveIOCTL = CreateFile (driveName, 0,
                               FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                               OPEN_EXISTING, 0, NULL);


в sprintf надо передавать char
а в CreateFile LPWSTR
пишет, что не может конвертировать
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0550 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.