Техника защиты компакт-дисков от копирования

         

в надежде найти тех, кто


      unsigned char str[0xFF];

      unsigned char CDB[ATAPI_CDB_SIZE];

      long a, real_len, adapterid, targetid;

     

      // получаем кол-во адаптеров на шине

      ASPI32Status = GetASPI32SupportInfo();

      AdapterCount = (LOBYTE(LOWORD(ASPI32Status)));

     

      // готовим CDB-блок

      memset(CDB, 0, ATAPI_CDB_SIZE);

      CDB[0] = 0x12;               // INQUIRY

      CDB[4] = 0xFF;               // размер ответа

     

      // спамим порты в надежде найти тех, кто нам нужен

      for (adapterid = 0; adapterid < MAX_LUN; adapterid++)

      { // внимание! нельзя здесь ^^^^^^^^^^^^^ использовать AdapterCount,

        // как это рекомендуется в некоторых руководствах, поскольку номера

        // адаптеров устройств далеко не всегда идут вплотную друг к другу,

        // и если в нумерации возникает "разрыв", одно или более устройств

        // останутся необнаруженными

     

            for (targetid = 0; targetid < MAX_ID; targetid++)

            {

                  a = SEND_ASPI_CMD(adapterid, targetid, CDB,

                            ATAPI_CDB_SIZE, 0, buf, 0xFF, ASPI_DATA_IN);

                  if (a == SS_COMP)

                  {

                        real_len=(buf[4]>MAX_INFO_LEN)?buf[4]:MAX_INFO_LEN;

                        memcpy(str,&buf[8],real_len);str[real_len]=0;

                        printf("%d.%d <-- %s\n",adapterid, targetid, str);

                  }     

            }

      }

}

Результат работы программы на компьютере автора выглядит так, как показано в листинге 1.4.13 (обратите внимание, что адреса устройств, подключенных к виртуальной SCSI-шине, созданной драйвером ASPI, могут и не соответствовать их физическим адресам; в данном случае, привод PHILIPS висящий на физическом IDE-порту с номером 0, попал на виртуальный порт с номером 1, поскольку нулевой порт занят драйвером Virtual Clone CD, при удалении последнего из системы, соответствие виртуальных и физических адресов полностью восстанавливается, однако ручаться за это нельзя).

Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий