首页
社区
课程
招聘
[旧帖] [求助]关于TDI返回的结构体问题 0.00雪花
发表于: 2012-5-4 23:28 1040

[旧帖] [求助]关于TDI返回的结构体问题 0.00雪花

2012-5-4 23:28
1040
最近研究内核Hook,试图写一个过滤显示Tcp连接的程序,发现书上给出的tdi返回的结构体好像不正确。程序能够运行到过滤的位置,但是过滤无效。这是《windows内核安全防护》上面的例子。
不知道哪位大大知道哪里可以找到tdi返回的结构体。

typedef struct _CONNINFO101{
	ULONG status;
	ULONG src_addr;
	USHORT src_port;
	USHORT unk1;
	ULONG dst_addr;
	USHORT dst_port;
	USHORT unk2;

}CONNINFO101, *PCONNINFO101;

NTSTATUS MyIoCompleteRoutine(PDEVICE_OBJECT DeviceObject, 
						   PIRP Irp,
						   PVOID Context)
{
	PVOID OutputBuffer;
	PREQINFO pReqInfo = (PREQINFO)Context;
	DWORD NumOutputBuffers;
	PIO_COMPLETION_ROUTINE p_comRoutine;
	DWORD i;
	OutputBuffer = Irp->UserBuffer;
	p_comRoutine = pReqInfo->OldCompletion;
	KdPrint(("Complete Routine"));
	if (pReqInfo->ReqType == 0x101){
		NumOutputBuffers = Irp->IoStatus.Information /
			sizeof(CONNINFO101);
		for (i=0; i<NumOutputBuffers; i++){
			if (HTONS(((PCONNINFO101)OutputBuffer)[i].dst_port) == 80){
				KdPrint(("Filter One,101"));//能够运行到这里,但是netstat照样显示http连接。
				//((PCONNINFO101)OutputBuffer)[i].status = 0;/*	0 = Invisible*/
				memset (&((PCONNINFO101)OutputBuffer)[i], 0, sizeof(CONNINFO101));
			}
		}
	}
...

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//