首页
社区
课程
招聘
[旧帖] [求助]TDI驱动如何获得应答数据包的内容 0.00雪花
发表于: 2014-6-11 13:02 1497

[旧帖] [求助]TDI驱动如何获得应答数据包的内容 0.00雪花

2014-6-11 13:02
1497
我在写一个TDI驱动,目标是得到服务器的应答数据包,然后修改里面的数据,我现在劫持了
事件TDI_EVENT_RECEIVE 和TDI_EVENT_CHAINED_RECEIVE的回调函数,但是我不知道怎样在回调函数里取得应答的数据内容,现在只是在回调函数内,调用了原来的回调函数。看了楚狂人的《寒江独钓》,但是里面只是统计了接收的字节数,并没有显示接收到的数据。希望有这方面的大侠帮帮忙。不胜感激!!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
以下内容为TDI_EVENT_RECEIVE事件的回调函数,他会导致经常的蓝屏因为我还不会驱动的调试,这让我束手无策啊。

NTSTATUS TdiFilterRecvEventHandler(
        IN PVOID TdiEventContext,
    IN CONNECTION_CONTEXT ConnectionContext,
    IN ULONG ReceiveFlags,
    IN ULONG BytesIndicated,
    IN ULONG BytesAvailable,
    OUT ULONG *BytesTaken,
    IN PVOID Tsdu,
    OUT PIRP *IoRequestPacket)
{
        PIRP  irp;
        PVOID buf;
        ULONG mdl_length;
        PVOID kernel_address;
   
    NTSTATUS ntStatus;
        PIO_STACK_LOCATION irps;
    PTDI_EVENT_HANDLER_WRAP pEventHandlerWrap;
       
        KdPrint(("[tdi_fw] Recv Event Handler\n"));
    pEventHandlerWrap = (PTDI_EVENT_HANDLER_WRAP)TdiEventContext;
   
    ntStatus = ((PTDI_IND_RECEIVE)pEventHandlerWrap->pOrgEventHandler)(
        pEventHandlerWrap->pOrgEventContext,
        ConnectionContext,
        ReceiveFlags,
        BytesIndicated,
        BytesAvailable,
        BytesTaken,
        Tsdu,
        IoRequestPacket
        );

               // 以下代码屏蔽掉,就不会蓝屏
        if ((*BytesTaken != 0) && (*IoRequestPacket != NULL)) {
                irp = *IoRequestPacket;
                irps = IoGetCurrentIrpStackLocation(irp);
                mdl_length  = MmGetMdlByteCount(irp->MdlAddress);
                kernel_address = MmGetSystemAddressForMdlSafe(irp->MdlAddress, NormalPagePriority);
                buf = ExAllocatePool(NonPagedPool, (mdl_length / 4 + 1) * 4);
                RtlCopyMemory(buf, kernel_address, mdl_length);
                *((char*)buf + mdl_length) = 0;
                KdPrint(("%s\n", (char*)buf));
                ExFreePool(buf);
                KdPrint(("[tdi_fw] Recv End\n"));
        }

    return ntStatus;
}
2014-6-11 13:27
0
雪    币: 327
活跃值: (1106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
IN PVOID Tsdu 数据
2014-6-12 09:58
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个Tsdu的含义是什么,在网上一直没找到,而且我打印这个数据,就蓝屏。
我是按下面得方法打印的。
KdPrint(("%s\n"), (char*)Tsdu);
2014-6-13 10:58
0
游客
登录 | 注册 方可回帖
返回
//