我是靠谱客的博主 小巧戒指,最近开发中收集的这篇文章主要介绍2020腾讯游戏安全技术初赛pc客户端安全R0,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参赛网址:

1、2020腾讯游戏技术竞赛

 

题目要求:

初赛ring0题目:(本题共5分)

DriverDemo.sys是一个驱动程序,它内置了一些限制。

1, 不能篡改该文件,尝试使驱动成功加载。(3分)

2, 该驱动程序成功加载后,突破它的限制,但不允许patch文件或内存,使它成功打印出(用dbgview可接受)调试信息"hello world!".(2分)

请以文档方式,详细描述解题过程,如涉及编写程序,必须提供源代码。

驱动未签名,需要设置Windows 10高级启动选项,禁用驱动程序强制签名后方可答题,支持使用虚拟机。

 

实操:

1、dump驱动

bp MmGetSystemRoutineAddress然后再用.writemem指令将内存写到文件

然后得到最终的dump文件

 

2、不能篡改该文件,尝试使驱动成功加载

1、调用KdDebuggerEnabled关闭内核调试(Windbg动态调试直接跳过即可)

2、检查注册表路径\REGISTRY\MACHINE\SOFTWARE\AppDataLow\Tencent\{61B942F7-A946-4585-B624-B2C0228FFEBC}路径下的Key键名的键值为1表示合法此时驱动正常执行加载。

3、显示调试信息"hello world!"

后面的代码就是创建事件

KeResetEvent调用指定的事件对象重置为无信号状态

然后创建线程等待事件收到信号输出:hello world

结论只要我们调用KeSetEvent设置为有信号即可

 

4、代码编写

逻辑:

1、用IoCreateNotificationEvent 打开事件对象

2、调用KeSetEvent设置信号

#include <ntddk.h>


NTSTATUS DriverNormalDeallDispatch(struct _DEVICE_OBJECT* DeviceObject, struct _IRP* Irp)
{
	UNREFERENCED_PARAMETER(DeviceObject);
	Irp->IoStatus.Information = STATUS_SUCCESS;

	IoCompleteRequest(Irp, IO_NO_INCREMENT);
	return STATUS_SUCCESS;
}

VOID DriverUnload(IN PDRIVER_OBJECT DriverObject)
{
	UNREFERENCED_PARAMETER(DriverObject);

	KdPrint(("卸载成功tn"));
	return;

}
NTSTATUS DriverEntry(
	IN PDRIVER_OBJECT  DriverObject,		//代表本驱动的驱动对象
	IN PUNICODE_STRING RegistryPath		//驱动的路径,在注册表中
)
{
	UNICODE_STRING EventName = { 0 };
	UNREFERENCED_PARAMETER(RegistryPath);
	//卸载函数
	DriverObject->DriverUnload = DriverUnload;
	//1、通讯函数、创建设备、符号链接、初始化导出接口
	for (size_t i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
	{
		DriverObject->MajorFunction[i] = DriverNormalDeallDispatch;
	}

	RtlInitUnicodeString(&EventName, L"\BaseNamedObjects\tp2020");
	HANDLE hEvent = 0;
	//如果事件对象已经存在,则 IoCreateNotificationEvent 只是打开事件对象。 
	PRKEVENT pEvent = IoCreateNotificationEvent(&EventName, &hEvent);
	if (pEvent)
	{
		KeSetEvent(pEvent, 0, 0);
	}
	else
	{
		KdPrint(("IoCreateNotificationEvent Errortn"));
	}
	KdPrint(("驱动初始化成功tn"));
	return STATUS_SUCCESS;
}

5、最终效果

 

最后

以上就是小巧戒指为你收集整理的2020腾讯游戏安全技术初赛pc客户端安全R0的全部内容,希望文章能够帮你解决2020腾讯游戏安全技术初赛pc客户端安全R0所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部