检测内存中的 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