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

         

Далее можно поступить двояко: либо


Далее можно поступить двояко: либо установить точку останова на ту ячейку памяти, в которой этот дескриптор сохраняется, либо установить условную точку останова на функцию DeviceIoControl, отлавливая только те ее вызовы, которые нам необходимы. Пример сеанса работы с отладчиком приведен в листинге 2.5.1ниже.:

Листинг 2.5.131. Пример изобличения и разоблачения защитного механизма в Soft-Ice

:bpx CreateFileA if (*esp->4=='\\\\.\\')   (ставим точку останова)

:x                                         (выходим из отладчика)



(отладчик немного думает, а потом всплывает в момент вызова CreateFileA)

:P RET                                     (выходим из CreateFileA)

:? eax                                     (узнаем значение дескриптора)

00000030  0000000048  "0"                  (ответ отладчика)

:DeviceIoControlA if (*esp->4==0x30)       (ставим точку останова на DeviceIoCntrl)

(подумав, отладчик всплывает в момент вызова DeviceIoControl)

:P RET                                     (выходим из DeviceIoControl)

: U                                        (все! мы нашли защиту!)

001B:00401112     LEA      ECX,[EBP-38]

001B:00401115     PUSH     ECX            ;

001B:00401116     PUSH     0004D004       ; вот он, IOCTL_SCSI_PASS_THROUGH_DIRECT!

001B:0040111B     MOV      EDX,[EBP-0C]

001B:0040111E     PUSH     EDX

001B:0040111F     CALL     [KERNEL32!DeviceIoControl]

Как видно, поиск функции DeviceIoControl не занял много времени. Остается проанализировать передаваемый ей код IOCTL- код (в нашем случае IOCTL_SCSI_PASS_THROUGHT_DIRECT) и его параметры, передаваемые через стек одним двойным словом выше.

Некоторые разработчики помещают критическую часть защитного кода в драйвер, надеясь, что хакеры там ее не найдут. Наивные! ДрайвераДрайверыа в силу своего небольшого размера очень просто анализируютсяанализируются, и спрятать защитный код там попросту негде. А вот если "размазать" защиту по нескольким мегабайтам прикладного кода, то на ее анализ уйдет чертова уйма времени, и если у хакера нет никаких особых стимулов для взлома (как-то: спортивный интерес, повышение собственного профессионализма и т. п.), то он скорее приобретет легальную версию, чем в течении нескольких недель будет метаться от дизассемблера к отладчику.


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







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