首页
社区
课程
招聘
[旧帖] [讨论][讨论][讨论]Hook API拦截网络数据包 0.00雪花
发表于: 2012-6-19 10:48 2870

[旧帖] [讨论][讨论][讨论]Hook API拦截网络数据包 0.00雪花

2012-6-19 10:48
2870
最近遇到一个问题,我们公司的一个对手,利用他们的软件修改了网络数据包如
http://www.soso.com/q?ie=utf-8&cid=union.s.wh&unc=m400284_8103&w=IT%E7%94%B7%E5%86%99%E4%B8%87%E5%AD%97%E7%BD%91%E5%B8%96%E5%90%90%E6%A7%BD
这条http请求,本来这是正确的,结果在发送的时候被修改了,
http://www.soso.com/q?ie=utf-8&cid=union.s.wh&unc=h500284_8103&w=IT%E7%94%B7%E5%86%99%E4%B8%87%E5%AD%97%E7%BD%91%E5%B8%96%E5%90%90%E6%A7%BD
因为此unc字段是根据每个用户的点击数的统计,被修改后,我们的用户就没有记录了,点击数量也会记到修改的ID上,对我们造成严重影响。
最近开始研究这个问题,想到了hook api来解决,hook send 拦截网络数据包,检查发送的数据是否正确,如果不正确就修改回来,但是经过测试后发现,hook send 无法拦截到被修改的数据包,同时也试了sendto,WASsend,都不行。
后来在论坛里看到可以通过hook NtDeviceIoControlFile来进行数据拦截,http://bbs.pediy.com/showthread.php?t=81204 
这个号称是应用层最底层的抓包了,然后把这个也试了一下,还是无法拦截到网络数据包,这个可以拦截到异步的数据包。
这两种方法我都是通过远程注入的方式,注入到IE进程,进行数据包拦截。
在测试的时候发现通过wireshark抓包可以看到被修改的数据包
GET /q?ie=utf-8&cid=union.s.wh&unc=h500854_s1_a2&w=%E5%87%916%E5%85%83%E4%B8%AD500%E4%B8%87 HTTP/1.1\r\n
Accept-Language:zh-cn\r\n
Accept-Encoding:gzip,deflate\r\n
User-Agent:Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 5.1;Trident/4.0)\r\n
Host:www.soso.com\r\n
Connection:Keep-Alive\r\n
[truncated] Cookie:suid=2599556110;pgv_pvid=3408397397;pgv_flv=10.0;uin_cookie=317606359;euin_cookie=26372ABF290DAE24A0BF28765FB1A794414D5A3851F5C529;cid=union.s.wh;pgv_info=pgvReferrer=&ssid=s4201218218;ss_cidf=1;tjz_1_uid=909117214442021\r\n(这是wireshark抓到的包)

GET /q?ie=utf-8&cid=union.s.wh&unc=m400284_8103&w=%E4%B8%AD%E7%9F%B3%E5%8C%96%E7%82%BC%E6%B2%B9%E5%8E%82%E7%88%86%E7%82%B8 HTTP/1.1   
Accept: */*   
Accept-Language: zh-cn   
Accept-Encoding: gzip, deflate   
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0)   
Host: www.soso.com   
Connection: Keep-Alive   
Cookie: suid=2599556110; pgv_pvid=3408397397; pgv_flv=10.0; (我自己写的程序抓的包)
不知道大家有没有什么好办法,相互讨论一下,谢谢各位了!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
2
先用tdi,
不行就ndis
2012-6-19 11:46
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
3
其实我也准备做http的过滤,呵呵
2012-6-19 11:47
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
关键上面不让用驱动搞
2012-6-19 11:55
0
雪    币: 615
活跃值: (172)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
5
客户端你再怎么hook都是治标不治本,最好是在网站服务端处理统计。
2012-6-20 03:46
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
服务端我是控制不了的,数据是走http发到SOSO的服务器上,我也知道只要在服务端制定规则就可以解决,关键是我控制不了
2012-6-20 10:06
0
游客
登录 | 注册 方可回帖
返回
//