首页
论坛
课程
招聘
[原创]VT技术学习分享
2020-10-19 22:12 7903

[原创]VT技术学习分享

2020-10-19 22:12
7903

前序:

      如发现有好的思路或者发现任何纰漏,请您在评论区不吝赐教,本帖驱动部分并没有开源,但是也并未加壳,如有需要,请自行F5;如需要代码,请帮忙踩楼,我会尽快分享的。驱动未签名,可以考虑在废掉签名的情况下测试。


一、

      大牛请轻喷,代码确实是抄的HyperPlatform。


二、

     驱动中包含了两个功能:第一个功能是骗过PG的EPT HOOK,本次做的实验是HOOK NtOpenProcess,原理为:准备了一份物理页,为执行权限,NtOpenProcess所在的物理页为Read和Write权限,当读取和写入的时候,读取的是原物理页,而执行的时候,执行的是新物理页,最后在新的物理页中进行inlinehook。最后当有函数执行到该处时,会跳转到Hook的位置。判断是否要打开的是关注的进程id,是的话,则拒绝打开。


三、

    第二个功能为强删功能,在论坛中可以搜索到相关的原理,即自己组建IRP,手动进行下发,当然,这里面加了一点佐料(理论上更强了),希望有兴趣的同学玩的开心。这里就不在赘述了。


四、

    Ring3的代码在下面,因为原本还有一个功能,但是由于太卡了,临时起意给砍掉了,所以,代码是现摘出来的,希望大家见谅。另外驱动我只测试过x64下的win7和win10。还希望大家在虚拟机里面玩玩就好。


PS:本次受害者是某山某霸

#include "windows.h"
#include "stdio.h"

#define INPUT_HOOK_COMMAND CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define INPUT_UNHOOK_COMMAND CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define INPUT_AddPID CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define INPUT_DeletePID CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define INPUT_SUPER_KILL_FILE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x804, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

void main() {
	HANDLE hDevice = CreateFile(L"\\\\.\\Whisper_Waiter", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	if (hDevice != INVALID_HANDLE_VALUE)
	{
		printf("驱动打开成功!\n");
	}
	else {
		printf("驱动打开失败!\n");
		//return 0;
	}
	
	getchar();
	
	//强删文件调用
	wchar_t szBuffer[MAX_PATH];
	lstrcpy((LPWSTR)szBuffer, L"\\??\\C:\\Program Files (x86)\\kingsoft\\kingsoft antivirus\\kxescore.exe");
	DeviceIoControl(hDevice, INPUT_SUPER_KILL_FILE, szBuffer, lstrlen((LPCWSTR)szBuffer) * 2, szBuffer, sizeof(szBuffer), &nReturn, NULL);
	
	getchar();
	
	//VT HOOK NtOpenProcess
	ULONG_PTR szCBuffer[5] = {};
	DeviceIoControl(hDevice, INPUT_HOOK_COMMAND, szCBuffer, sizeof(szCBuffer), szCBuffer, sizeof(szCBuffer), &nReturn, NULL);
	
	getchar();
	
	//传入本进程ID,内核态保护
	szCBuffer[0] = GetCurrentProcessId();
	DeviceIoControl(hDevice, INPUT_AddPID, szCBuffer, sizeof(szCBuffer), szCBuffer, sizeof(szCBuffer), &nReturn, NULL);
	
	//此时可以保护掉大部分"普通"任务管理器
	getchar();
	
	//从驱动内存中删掉本进程ID
	szCBuffer[0] = GetCurrentProcessId();
	DeviceIoControl(hDevice, INPUT_DeletePID, szCBuffer, sizeof(szCBuffer), szCBuffer, sizeof(szCBuffer), &nReturn, NULL);
	
	//VT UNHOOK NtOpenProcess
	DeviceIoControl(hDevice, INPUT_UNHOOK_COMMAND, szCBuffer, sizeof(szCBuffer), szCBuffer, sizeof(szCBuffer), &nReturn, NULL);
	
	getchar();
	
	CloseHandle(hDevice);
	
	printf("bye!\n");
}

五、

    最后一个功能还在开发,希望大家帮忙点点赞踩踩楼,我会尽快将驱动的源码发出来的,拜托大家了!


【公告】欢迎大家踊跃尝试高研班11月试题,挑战自己的极限!

最后于 2020-10-19 22:13 被不对编辑 ,原因:
上传的附件:
收藏
点赞6
打赏
分享
最新回复 (14)
雪    币: 1898
活跃值: 活跃值 (1560)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
默NJ 活跃值 2020-10-19 22:49
2
0
好,支持一下
雪    币: 430
活跃值: 活跃值 (1105)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
萌克力 活跃值 2020-10-19 22:49
3
0
ept痕迹大 不如入手cr3,反正改改eprocess里面的东西+cr3,基本等于隐形了
雪    币: 9538
活跃值: 活跃值 (1660)
能力值: ( LV6,RANK:87 )
在线值:
发帖
回帖
粉丝
Lixinist 活跃值 1 2020-10-20 08:42
4
0
坐等
雪    币: 5628
活跃值: 活跃值 (1292)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
不对 活跃值 2020-10-20 10:36
5
0
萌克力 [em_48]ept痕迹大 不如入手cr3,反正改改eprocess里面的东西+cr3,基本等于隐形了
通过cr3进行映射内存嘛?
雪    币: 218
活跃值: 活跃值 (772)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kakasasa 活跃值 2020-10-20 15:50
6
0
mark
雪    币: 2362
活跃值: 活跃值 (1375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
caolinkai 活跃值 2020-10-21 14:40
7
0
支持一下
雪    币: 1165
活跃值: 活跃值 (17)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
wx_听海看雪 活跃值 2020-10-21 15:19
8
0
支持一下
雪    币: 15
活跃值: 活跃值 (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
吕彬 活跃值 2020-10-22 12:48
9
0
支持一下
雪    币: 10294
活跃值: 活跃值 (5342)
能力值: ( LV12,RANK:302 )
在线值:
发帖
回帖
粉丝
一半人生 活跃值 5 2020-10-22 17:23
10
0
DdiMon?
雪    币: 177
活跃值: 活跃值 (63)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
酒敬丨自由 活跃值 2020-10-23 21:46
11
0
支持大佬,什么时候开源。哈哈哈
雪    币: 21
活跃值: 活跃值 (222)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
0
支持一下
雪    币: 209
活跃值: 活跃值 (97)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lcss 活跃值 2020-11-7 13:41
13
0
支持一下
雪    币: 198
活跃值: 活跃值 (1241)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yy虫子yy 活跃值 2020-11-7 15:02
14
0
谢谢分享
雪    币: 186
活跃值: 活跃值 (879)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wem 活跃值 2021-11-29 04:55
15
0
谢谢分享
游客
登录 | 注册 方可回帖
返回