荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店