/*
时间:2018年10月10日 09:48:59
作者:https://github.com/Sqdwr
学(抄)习(袭)自:https://github.com/ZhuHuiBeiShaDiao
*/
#include <ntddk.h>
#include "GET_MIPROCESSLOADERENTRY.h"
#include "SYSTEM_MODULE_STRUCT.h"
BOOLEAN GetDriverObjectByName(PDRIVER_OBJECT *DriverObject, WCHAR *DriverName)
{
PDRIVER_OBJECT TempObject = NULL;
UNICODE_STRING u_DriverName = { 0 };
NTSTATUS Status = STATUS_UNSUCCESSFUL;
RtlInitUnicodeString(&u_DriverName, DriverName);
Status = ObReferenceObjectByName(&u_DriverName, OBJ_CASE_INSENSITIVE, NULL, 0, *IoDriverObjectType, KernelMode, NULL, &TempObject);
if (!NT_SUCCESS(Status))
{
KdPrint(("获取驱动对象%ws失败!错误码是:%x!\n", Status));
*DriverObject = NULL;
return FALSE;
}
*DriverObject = TempObject;
return TRUE;
}
BOOLEAN SupportSEH(PDRIVER_OBJECT DriverObject)
{
//因为驱动从链表上摘除之后就不再支持SEH了
//驱动的SEH分发是根据从链表上获取驱动地址,判断异常的地址是否在该驱动中
//因为链表上没了,就会出问题
//学习(抄袭)到的方法是用别人的驱动对象改他链表上的地址
PDRIVER_OBJECT BeepDriverObject = NULL;;
PLDR_DATA_TABLE_ENTRY LdrEntry = NULL;
GetDriverObjectByName(&BeepDriverObject, L"\\Driver\\beep");
if (BeepDriverObject == NULL)
return FALSE;
//MiProcessLoaderEntry这个函数内部会根据Ldr中的DllBase然后去RtlxRemoveInvertedFunctionTable表中找到对应的项
//之后再移除他,根据测试来讲..这个表中没有的DllBase就没法接收SEH,具体原理还没懂...
//所以这里用系统的Driver\\beep用来替死...
LdrEntry = (PLDR_DATA_TABLE_ENTRY)DriverObject->DriverSection;
LdrEntry->DllBase = BeepDriverObject->DriverStart;
ObDereferenceObject(BeepDriverObject);
return TRUE;
}
VOID InitInLoadOrderLinks(PLDR_DATA_TABLE_ENTRY LdrEntry)
{
InitializeListHead(&LdrEntry->InLoadOrderLinks);
InitializeListHead(&LdrEntry->InMemoryOrderLinks);
}
VOID Reinitialize(PDRIVER_OBJECT DriverObject, PVOID Context, ULONG Count)
{
MiProcessLoaderEntry m_MiProcessLoaderEntry = NULL;
BOOLEAN bFlag = FALSE;
ULONG *p = NULL;
m_MiProcessLoaderEntry = Get_MiProcessLoaderEntry();
if (m_MiProcessLoaderEntry == NULL)
return;
// bFlag = SupportSEH(DriverObject);
m_MiProcessLoaderEntry(DriverObject->DriverSection, 0);
InitInLoadOrderLinks((PLDR_DATA_TABLE_ENTRY)DriverObject->DriverSection);
DriverObject->DriverSection = NULL;
DriverObject->DriverStart = NULL;
DriverObject->DriverSize = NULL;
DriverObject->DriverUnload = NULL;
DriverObject->DriverInit = NULL;
DriverObject->DeviceObject = NULL;
/*if (bFlag)
{
__try {
*p = 0x100;
}
__except (1)
{
KdPrint(("SEH正确处理!\n"));
}
}*/
}
VOID Unload(PDRIVER_OBJECT DriverObject)
{
KdPrint(("Unload Success!\n"));
}
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegString)
{
KdPrint(("Entry Driver!\n"));
IoRegisterDriverReinitialization(DriverObject, Reinitialize, NULL);
DriverObject->DriverUnload = Unload;
return STATUS_SUCCESS;
}
没有合适的资源?快使用搜索试试~ 我知道了~
HideDriver_hidedriver_TP_驱动隐藏_驱动断链隐藏_隐藏驱动
共43个文件
tlog:21个
log:5个
inf:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 13 下载量 153 浏览量
2021-09-11
12:37:33
上传
评论 2
收藏 5.88MB RAR 举报
温馨提示
驱动隐藏 断链隐藏驱动及驱动注册回调,可过TP双击调试
资源推荐
资源详情
资源评论
收起资源包目录
HideDriver_hidedriver_TP_驱动隐藏_驱动断链隐藏_隐藏驱动_源码.rar (43个子文件)
HideDriver
HideDriver.sln 3KB
.vs
HideDriver
v16
ipch
AutoPCH
b4ec651936ff6441
WINDOWS DRIVER1.ipch 18MB
.suo 20KB
Browse.VC.db 12.55MB
HideDriver
ARM
Debug
HideDriver.log 173B
Debug
vc141.pdb 108KB
HideDriver.tlog
stampinf.write.1.tlog 260B
stampinf.read.1.tlog 360B
HideDriver.lastbuildstate 232B
CL.command.1.tlog 2B
stampinf.command.1.tlog 444B
HideDriver.inf 556B
HideDriver.log 1KB
HideDriver.Build.CppClean.log 542B
HideDriver.vcxproj 7KB
HideDriver.inf 538B
GET_MIPROCESSLOADERENTRY.h 9KB
SYSTEM_MODULE_STRUCT.h 1KB
x64
Debug
vc141.pdb 132KB
HideDriver.tlog
stampinf.write.1.tlog 268B
CL.read.1.tlog 5KB
inf2cat-expand.12716.read.1.tlog 754B
link.read.1.tlog 1KB
inf2cat.read.1.tlog 3KB
inf2cat.write.1.tlog 260B
inf2cat-expand.write.1.tlog 512B
link.write.1.tlog 396B
Inf2Cat.command.1.tlog 418B
CL.write.1.tlog 416B
inf2cat.read.6.tlog 2B
stampinf.read.1.tlog 368B
link.command.1.tlog 2KB
inf2cat-expand.read.1.tlog 754B
inf2cat-expand.12716.write.1.tlog 512B
HideDriver.lastbuildstate 230B
CL.command.1.tlog 1KB
stampinf.command.1.tlog 440B
Windows Driver1.obj 37KB
HideDriver.inf 561B
HideDriver.log 846B
HideDriver.Build.CppClean.log 2KB
Windows Driver1.c 3KB
HideDriver.vcxproj.filters 1KB
共 43 条
- 1
心梓
- 粉丝: 808
- 资源: 8057
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页