荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: bstone (Back to real world!), 信区: Hacker
标 题: SoftIce的后门
发信站: BBS 荔园晨风站 (Sun Apr 9 07:20:10 2000), 转信
发信人: ipxodi (乐乐~闭关苦攒论文中), 信区: Hacker
标 题: SoftIce的后门
发信站: BBS 水木清华站 (Thu Apr 6 15:46:12 2000)
前面有人提过S-ice有后门,可以被检测出来,下面公布,
大家可以在自己的程序中判断系统中Sice的存在:
SOFT-ICE 的后门-藉此来判断内存中SICE的存在
1.取 Soft-ice 的版本号(DOS,WIN95)
xor ax,ax
mov si,4647h ;"FG"
mov di,4a4dh ;"JM"
int 03
cmp si,4647h
je nosice_detected ;si 返回SICE的版本号
;若SI!=输入值时,肯定
;返回了版本号.(BCD码)
jmp sice_detected
;一旦检测到SICE,余下的事不用我多说了吧!
;比较文明的做法是提示你:"内存中有SICE"不能运行,
;狠一点的就要非法操作了.
;兄台可不要学KV300那样改人家的分区表噢!
;"那么,我来擦除BIOS芯片吧!" 老天!
2.摹拟LDR.EXE的动作(DOS,WIN95)
mov ax,0902h
mov si,4647h
mov di,4a4dh
mov ds,current_DS
mov bx,offset table ;DS:BX指向一个表
int 03
;这是LDR中呼叫SICE的调用,用来载入被调试
;的程序,一经调用,若SICE已经在内存中的话
;就会被激发弹出,并将各个寄存器置为DS:BX
;所指向的表中的值.
;=================================
;表1
;偏移 大小 值的说明
;00h WORD SP的初始化值
;02h WORD SS的初始化值
;04h WORD IP的初始化值
;06h WORD CS的初始化值
;08h WORD DS,ES的初始化值
;0Ah WORD 不详
;0Ch WORD 不详
;0Ch WORD 不详
;0Eh WORD 不详
;10h WORD AX的初始化值
;12h WORD 不详
;14h WORD 不详
;16h WORD 不详
;=================================
;于是就非常有意思,若内存中无SICE的时侯
;什么事都不会发生,若有SICE,程序的流程
;就会按你的愿望进行改变(最好是非法操作)
;并弹出SICE的窗口,让初学者摸不到头脑?
;奇怪?怎么会弹出呢?他想.
3.若是SICE FOR WIN95的话,又有下面的:
mov ax,1684h ;WINDOWS取VXD的ID的调用
mov bx,0202h ;WINICE的VXD的ID
xor di,di
mov es,di
int 2fh
mov ax,es
or ax,ax
jne winice_detected
jne winice_detected
or di,di
jne winice_detected
jmp no_winice_detected
;执行过后,若WINICE在内存中的话,ES:DI将会
;是VXD API的入口.若没有WINICE,则ES:DI=
;0000:0000,这个技巧在HWINFO中被用到过,
;非常隐蔽.
4.若是SICE FOR WIN95的话,又有下面的:
//在BC5.0中调试通过
//实际上是打开文件:"\\.\SICE"
#include
#include
BOOL IsSoftIce95Loaded(void);
BOOL IsSoftIce95Loaded()
{
HANDLE hFile;
hFile = CreateFile( "\\\\.\\SICE",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if( hFile != INVALID_HANDLE_VALUE )
{
CloseHandle(hFile);
return TRUE;
}
return FALSE;
}
void main(void)
{
if( IsSoftIce95Loaded() )
MessageBox( NULL,
"Softice For win95 is loaded!",
"Dangerous!",
MB_SYSTEMMODAL
);
else
MessageBox( NULL,
"Softice For win95 is not loaded!",
"Safe! ",
"Safe! ",
MB_SYSTEMMODAL
);
}
5.若是SICE FOR WINNT的话,又有下面的:
//在BC5.0中调试通过
//实际上是打开文件:"\\.\NTICE"
#include
#include
BOOL IsSoftIceNTLoaded(void);
BOOL IsSoftIceNTLoaded()
{
HANDLE hFile;
hFile = CreateFile( "\\\\.\\NTICE",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if( hFile != INVALID_HANDLE_VALUE )
if( hFile != INVALID_HANDLE_VALUE )
{
CloseHandle(hFile);
return TRUE;
}
return FALSE;
}
void main(void)
{
if( IsSoftIceNTLoaded() )
MessageBox( NULL,
"Softice For winNT is loaded!",
"Dangerous!",
MB_SYSTEMMODAL
);
else
MessageBox( NULL,
"Softice For winNT is not loaded!",
"Safe! ",
MB_SYSTEMMODAL
);
}
"Softice For winNT is loaded!",
ipxodi注:
作者:TiANWEi
--
终日奔忙只为饥,才得有食又思衣.置下绫罗身上暖,抬头又嫌房屋低.
盖下高楼并大厦,床前缺少美貌妻.娇妻美妾都娶下,又虑出门没马骑.
将钱买下高头马,马前马后少跟随.家人招下数十个,有钱无势被人欺.
一铨铨到知县位,又说官小势位卑.一攀攀到阁老位,每日思想要登基.
一日南面坐天下,又想神仙来下棋.洞宾与他把棋下,又问那有上天梯.
上天梯子未作下,阎王发牌鬼来催. ------明.朱载育.<十不足>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.112.101.139]
--
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: bbs@192.168.28.106]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店