// вы читаете...

Новости

Обход SoftIce’а



Проблема защиты своего софта от крякеров стоит в последнее время довольно остро. Многие современные программы от солидных фирм ломаются на “раз-два-три”. Чего уж тут после этого говорить о шароварных творениях, когда цена, какой бы то ни было, защиты намного дороже десятка копий защищаемой программы. Но процесс изобретения защит не стоит на месте! :) Всё время появляются новые мульки, для борьбы с debugger’ами. Сейчас я расскажу как можно обойти перехват WinApi в таких монстрах как SoftIce. (да и некоторых других дебаггерах) Для начала надо узнать как происходит перехват WinApi’шки или своей процедуры:
Когда мы пишем в софтайсе bpx <func_name>, отладчик ставит в процедуру в место первой инструкции ставит опкод 0CCh, что соответсвует int 03 (На самом деле это, конечно, не int 03, опкод которого 0CD03h, но все же это инструкция вызывающая специальное прерывание и возвращающее управление отладчику. Короче говоря, вот тебе вырезка из “Intel Hex Opcodes And Mnemonics”, все равно Intel знает лучше нас с тобой :)
INT — Interrupt
Usage: INT num
Modifies flags: TF IF
Initiates a software interrupt by pushing the flags, clearing the
Trap and Interrupt Flags, pushing CS followed by IP and loading
CS:IP with the value found in the interrupt vector table. Execution
then begins at the location addressed by the new CS:IP
Clocks Size
Operands 808x 286 386 486 Bytes

3 (constant) 52/72 23+m 33 26 2
3 (prot. mode, same priv.) — 40+m 59 44 2
3 (prot. mode, more priv.) — 78+m 99 71 2
3 (from VM86 to PL 0) — — 119 82 2
3 (prot. mode via task gate) — 167+m TS 37+TS 2

immed8 51/71 23+m 37 30 1
immed8 (prot. mode, same priv.) — 40+m 59 44 1
immed8 (prot. mode, more priv.) — 78+m 99 71 1
immed8 (from VM86 to PL 0) — — 119 86 1
immed8 (prot. mode, via task gate) — 167+m TS 37+TS 1

CC INT 3 Interrupt 3 trap to debugger

Страницы: 1 2 3 4 5 6 7

Обсуждене

Отзывов нет на «Обход SoftIce’а»

Ваш отзыв

Рубрики