欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]简单重载内核的方法

[原创]简单重载内核的方法

win7 32位测试
一启动就加载这个驱动,360那个hookpoint.sys会改内核,直接复制会蓝屏 先把hookpoint.sys搞了,我直接删了360
(全局)BYTE reload[内核文件的大小];//这样没用内存池应该不会出现safeseh的问题
PMDL g_pMdl = NULL;
PULONG g_pMdlTable = NULL;
NTSTATUS WriteSSDT_On(ULONG add,ULONG size)
{
        g_pMdl = IoAllocateMdl(add, size, FALSE, FALSE, NULL);
        if (!g_pMdl)        return STATUS_UNSUCCESSFUL;
        MmBuildMdlForNonPagedPool(g_pMdl);
        g_pMdl->MdlFlags  |= MDL_MAPPED_TO_SYSTEM_VA;
        g_pMdlTable = (PULONG)MmMapLockedPagesSpecifyCache(g_pMdl, KernelMode, MmNonCached, NULL, FALSE, NormalPagePriority);
        if (!g_pMdlTable)
        {
                IoFreeMdl(g_pMdl);
                return STATUS_UNSUCCESSFUL;
        }
        return STATUS_SUCCESS;
}
VOID WriteSSDT_Off()
{
        MmUnmapLockedPages(g_pMdlTable, g_pMdl);
        IoFreeMdl(g_pMdl);
}
DriverEntry:
(
ULONG add,size;
        if(MyEnumKernelModule("\\SystemRoot\\System32\\ntkrnlpa.exe",&add,&size)==-1)//获取内核地址(我的内核文件是这个)
{
return -1;
}
       WriteSSDT_On(add,size);
       memcpy(reload,(ULONG*)add,size);//复制内核到reload,直接复制的,不用重定位
        WriteSSDT_Off();
      然后ssdt表每个加上偏移(reload-add)就行了(当然你要保证ssdt恢复了,qqprotect.sys我是删了的)
.
.
.
.
)
不是很稳定(开网页就蓝屏,不开网页到没事)
反正蓝屏就是0x0000000fc(3,xxx,xx,xx)
各位麻烦帮我看下原因哈

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功