首页
社区
课程
招聘
[求助]HOOK NtDeviceIoControlFile修改请求包,感觉离成功越来越近了
发表于: 2014-10-7 21:41 10947

[求助]HOOK NtDeviceIoControlFile修改请求包,感觉离成功越来越近了

2014-10-7 21:41
10947
HOOK NtDeviceIoControlFile,注入浏览器,浏览器不崩溃了,但打开浏览器却无法连接网络。怎么查看也没有发现问题,小弟拜请大家给检查检查吧!
//钩子函数
NTSTATUS __stdcall NewNtDeviceIoControlFile(
  HANDLE FileHandle,
  HANDLE Event OPTIONAL,
  PVOID ApcRoutine OPTIONAL,
  PVOID ApcContext OPTIONAL,
  PVOID IoStatusBlock,
  ULONG IoControlCode,
  PVOID InputBuffer OPTIONAL,///////////////////g.关注这里面的数据
  ULONG InputBufferLength,
  PVOID OutputBuffer OPTIONAL,
  ULONG OutputBufferLength
  )
{

  //从InputBuffer得到Buffer和Len
  
  if (IoControlCode == AFD_SEND)
  {  
    PAFD_INFO AfdInfo = (PAFD_INFO)InputBuffer ;
    PVOID Buffer = AfdInfo->BufferArray->buf ;
    ULONG Len = AfdInfo->BufferArray->len;
    if (LookupSendPacket(Buffer , Len))
    {
      char *string=(char*)Buffer;
      char *substring="Host: www.google.com";
      int result= strindex(string,substring);//检查请求包中是否是主机为google
      if(result>0)
        OutputDebugString("please replace google!!!!!!!!!!");
    }
  AfdInfo->BufferArray->buf=(PCHAR)Buffer;
  AfdInfo->BufferArray->len=strlen((char*)Buffer);
  //调用原生函数
  LONG stat ;
  __asm
    {
      push  OutputBufferLength
      push  OutputBuffer
      push  InputBufferLength
      push  InputBuffer
      push  IoControlCode
      push  IoStatusBlock
      push  ApcContext
      push  ApcRoutine
      push  Event
      push  FileHandle
      call  pNtDeviceIoControl
      mov    stat ,eax
    }
  }
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
你是认为人家网络相关操作,比如解析dns,一定是在本进程么?
2014-10-7 22:20
0
雪    币: 752
活跃值: (3838)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
我也不会,帮顶下!
2014-10-7 23:21
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
唉。。。连http协议都不懂就像玩恶意推广。。。。蛋疼不?
2014-10-8 01:25
0
雪    币: 16
活跃值: (108)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
人家玩的底层,跟你HTTP有半毛钱关系,底层调用就是通过这个函数的
2014-10-14 19:55
0
雪    币: 16
活跃值: (108)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼猪你好,我最近也有跟你一样的需求,不过我是3环的,只是针对进程来拦截封包的,我看你都有 AFD_SEND,但是我就是没有找到这个控制码是在哪里声明的,所以我只好分析发包函数的底层控制码是多少,不知道楼猪能不能分享一下这些资料呢?

好人一生平安,坏人一生不平安
2014-10-14 19:59
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
WRK 或者ReactOS
2014-10-14 21:39
0
雪    币: 4396
活跃值: (4383)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
#define AFD_BIND 0x12003

#define AFD_CONNECT 0x12007

#define AFD_SET_CONTEXT 0x12047

#define AFD_RECV 0x12017

#define AFD_SEND 0x1201f

#define AFD_SELECT 0x12024

#define AFD_SENDTO 0x12023
2014-10-14 22:31
0
雪    币: 16
活跃值: (108)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼上2位是好人
2014-10-15 15:59
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不懂别瞎喷ok?
2014-10-16 01:22
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
他之前的需求在此:http://bbs.pediy.com/showthread.php?t=192739

不需要了解协议?
你是要多没常识……就是做在ndis中间层照样要了解
做哪层关协议毛事

他现在过滤的就是http 请求包
跟HTTP没有半毛钱关系?
不懂没关系,出来瞎说就贻笑大方了
2014-10-16 01:25
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
哈哈哈,支持楼上
2014-10-16 02:37
0
雪    币: 206
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
问题是如果原生函数放在后面执行,根本找不到想要的东西,放在前面执行修改了缓冲区又无效,纠结了好几天了。
2017-4-26 18:16
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
if  (IoControlCode  ==  AFD_SEND)外面没有调用原生函数
代码最后也没有返回
2017-4-26 18:24
0
雪    币: 5
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这个已经实现了,运行很顺利。如果SQL  SERVER没加密的话,同样可以修改。
2017-9-6 23:08
0
游客
登录 | 注册 方可回帖
返回
//