【发布时间】:2020-05-19 08:08:21
【问题描述】:
我试图通过Minifilterblock .dll 注入(或一般注入)到特定进程中
这是我的 PreOperationCallback:
if (Data->Iopb->MajorFunction == IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION) {
/* Open file for writing/appending? */
if ((Data->Iopb->Parameters.Create.SecurityContext->DesiredAccess & PAGE_EXECUTE) == PAGE_EXECUTE) {
if (security) {
DbgPrint("[ miniFilter ] [IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION] [ Blocked ]\n");
Data->IoStatus.Status = STATUS_ACCESS_DENIED;
return FLT_PREOP_COMPLETE;
}
}
if ((Data->Iopb->Parameters.Create.SecurityContext->DesiredAccess & FILE_EXECUTE) == FILE_EXECUTE) {
if (security) {
DbgPrint("[ miniFilter ] [IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION] [ Blocked ]\n");
Data->IoStatus.Status = STATUS_ACCESS_DENIED;
return FLT_PREOP_COMPLETE;
}
}
}
}
根据其他论坛IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 将调用DLL 注入!
我也尝试过“IRP_MJ_CREATE”,但随后我也阻止了.exe 文件的任何执行。过滤文件扩展名很容易被绕过...
我希望有人知道更多关于它的信息;)
【问题讨论】:
标签: windows kernel driver kmdf minifilter