检测内存中的 Soft-Ice

概述:

   
检测内存中的 Soft-Ice 又一法,不过这次用的是在全部内存搜索 Soft-Ice 的特征码来实现的

汇编编程示例:


;    加密方法:    检测 s-ice
;            用 scas,cmps 等指令, s-ice 无法用
;            bpm 等断点检测到, 因此可用比较关键字
;            来检测 s-ice 是否在内存中

code        segment
            assume     cs:code,ds:code
            org     100h
start:
            jmp     install

DATA_SICE    DB    67h,66h,8bh,06h,0fh,22h,0d8h,26h,67h,66h
             DB     8bh,46h,04h,66h,26h,67h,0fh,01h,10h
DATA_SICE_END    EQU    THIS BYTE

d_ok         db    'OK, passed...',0dh,0ah,24h
d_ice        db    'Has Soft-Ice in memory',0dh,0ah,24h

install:
        mov    si,offset data_sice
        mov    dx,cs
        mov    al,26h
        xor    bp,bp
        cld
res1:
        mov    es,bp
        mov    cx,100h
        xor    di,di
res2:
        repnz   scasb
        jnz     cts_2
        push    cx
        push    si
        push    di
        mov     cx,offset data_sice_end-offset data_sice
        repz    cmpsb
        jz      has_sice
        pop     di
        pop     si
        pop     cx
        jmp     short res2
cts_2:
        add    bp,10h
        cmp    bp,dx
        jb     res1
       
        mov    ah,9
        mov    dx,offset d_ok
        int    21h
        int    20h
has_sice:
        mov    ah,9
        mov    dx,offset d_ice
        int    21h
        int    20h

code    ends
        end    start