Далее можно поступить двояко: либо
Далее можно поступить двояко: либо установить точку останова на ту ячейку памяти, в которой этот дескриптор сохраняется, либо установить условную точку останова на функцию 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
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий