最近在解决一个问题,在我们的沙箱中IE不能上网
现象:
IE不能上网,输入www.baidu.com 提示:不能查找到DNS。也不能ping 通
其他浏览器上网没有问题(SG浏览器,Chrome ,firefox,猎豹,360)
为什么IE不能上网呢?
解决:
在应用层挂调试IE,在ws2_32!socket 下断点,发现 socket 不能创建成功。然后发现首先需要访问 qurl.f.360.cn ,然后再访问www.baidu.com
那么难道我访问网址需要经过qurl.f.360.cn过滤么?而qurl.f.360.cn 域名解析不成功然后就不能上网么?在ws2_32!socket 上继续追踪
在内核模式调试,最后定位的栈
kd> kbn
# RetAddr : Args to Child : Call Site
00 fffff880`0505f14c : 00000000`00000000 00000000`000007a0 fffffa80`02894010 00000000`00000018 : afd! ?? ::NNGAKEGL::`string'+0x1b1a
01 fffff880`04c20ed7 : 00000000`000007a0 00000000`000007a0 00000000`00000000 00000000`00000000 : afd!AfdDispatch+0x6c
02 fffff880`04c20095 : 00000000`00000010 00000000`00000000 fffff880`021776d8 fffffa80`02c49710 : 360AntiHacker64+0x2ed7
03 fffff800`041d9477 : 00000000`00000005 fffff800`041d8ed0 fffffa80`05600870 fffffa80`02c497a8 : 360AntiHacker64+0x2095
04 fffff800`041cf764 : fffffa80`035d23b0 00000000`00000000 fffffa80`035f1360 00000000`00000001 : nt!IopParseDevice+0x5a7
05 fffff800`041d4876 : fffffa80`035f1360 fffff880`021779f0 fffffa80`00000042 fffffa80`02548820 : nt!ObpLookupObjectName+0x585
06 fffff800`041db587 : 00000000`00000000 00000000`00000003 00000000`00000001 00000000`00000000 : nt!ObOpenObjectByName+0x306
07 fffff800`041e5198 : 00000000`067ee158 00000000`c0140000 00000000`00000000 00000000`067ee180 : nt!IopCreateFile+0x2b7
08 fffff800`03ed8153 : fffff880`02177c60 fffffa80`03867500 fffff880`02177bb8 00000000`00000000 : nt!NtCreateFile+0x78
09 00000000`76ff040a : 000007fe`fc502747 00000000`0532e1f0 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
0a 000007fe`fc502747 : 00000000`0532e1f0 00000000`00000000 00000000`00000000 00000000`0052ba80 : ntdll!ZwCreateFile+0xa
0b 000007fe`fc503874 : 00630069`004d005c 006f0073`006f0072 0057005c`00740066 00000000`067ee320 : mswsock!SockSocket+0x502
0c 000007fe`fdb81fe2 : 00000000`00000000 00000000`004c3f90 00000000`00000002 00000000`00000000 : mswsock!WSPSocket+0x23a
0d 000007fe`fdb83600 : 00000004`00000017 000007fe`00000002 00000000`00000000 00000000`00000000 : ws2_32!WSASocketW+0x112
0e 000007fe`fdb84b60 : 000007fe`00000002 00000000`05309f70 00000000`00000000 00000000`004a6ea0 : ws2_32!GetProtocolStateForFamily+0x7c
0f 000007fe`fdb83332 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`067ee5f4 : ws2_32!LookupAddressForName+0x100
10 000007fe`fdb82d28 : 00000000`00000000 00000000`00000000 00000000`0050b620 000007fe`fd7a3b2c : ws2_32!GetAddrInfoW+0x232
11 000007fe`fd1b1845 : 00000000`00000000 00000000`067ee818 00000000`067ee838 00000000`00000000 : ws2_32!getaddrinfo+0x98
12 000007fe`fd1cfabb : 00000000`00000000 00000000`0050bec0 00000000`03d496c0 00000000`0050b620 : WININET!MyGetAddrWithTracing+0xca
13 000007fe`fd1b249b : 00000000`00549a50 00000000`00000000 00000000`00549a50 00000000`00000000 : WININET!CAddressList::ResolveHost_Fsm+0x3a6
从ws2_32 调用 getaddrinfo 后经过 360AntiHacker64 然后再到tcpip
最后出错的栈
kd> kbn
# RetAddr : Args to Child : Call Site
00 fffff880`0184e33d : fffffa80`03940950 fffff880`01966128 00000000`00000001 fffff880`018602bf : tcpip!InetInspectCreateEndpoint+0x5e
01 fffff880`0184e24c : fffffa80`03940950 fffffa80`037f3d70 fffffa80`02d6d930 00000000`000007ff : tcpip!UdpCreateEndpointWorkQueueRoutine+0xad
02 fffff880`0184e3e9 : 00000000`00000011 fffffa80`025e78c0 fffffa80`03612c60 fffff880`0184e3b0 : tcpip!UdpCreateEndpoint+0x1ac
03 fffff880`0504ee17 : fffff8a0`098abde0 fffffa80`025e78c0 fffffa80`03612c60 fffffa80`026e1530 : tcpip!UdpTlProviderEndpoint+0x39
04 fffff880`0505f14c : 00000000`00000000 00000000`000007a0 fffffa80`026e1530 00000000`00000018 : afd! ?? ::NNGAKEGL::`string'+0x1b1a
05 fffff880`04c20ed7 : 00000000`000007a0 00000000`000007a0 00000000`00000000 00000000`00000000 : afd!AfdDispatch+0x6c
06 fffff880`04c20095 : 00000000`00000010 00000000`00000000 fffff880`040806d8 fffffa80`04f25d00 : 360AntiHacker64+0x2ed7
07 fffff800`041d9477 : 00000000`00000005 fffff800`041d8ed0 fffffa80`027ec9c0 fffffa80`04f25d98 : 360AntiHacker64+0x2095
08 fffff800`041cf764 : fffffa80`035d23b0 00000000`00000000 fffffa80`042c8760 00000000`00000001 : nt!IopParseDevice+0x5a7
09 fffff800`041d4876 : fffffa80`042c8760 fffff880`040809f0 00000000`00000042 fffffa80`02548820 : nt!ObpLookupObjectName+0x585
0a fffff800`041db587 : 00000000`00000000 00000000`00000003 00000000`00000001 00000000`00000000 : nt!ObOpenObjectByName+0x306
0b fffff800`041e5198 : 00000000`0647da68 00000000`c0140000 00000000`00000000 00000000`0647da90 : nt!IopCreateFile+0x2b7
0c fffff800`03ed8153 : fffff880`04080c60 fffffa80`03867500 fffff880`04080bb8 00000000`00000000 : nt!NtCreateFile+0x78
0d 00000000`76ff040a : 000007fe`fc502747 00000000`0532efb0 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
0e 000007fe`fc502747 : 00000000`0532efb0 00000000`00000000 00000000`00000000 00000000`0052ba80 : ntdll!ZwCreateFile+0xa
0f 000007fe`fc503874 : 00630069`004d005c 006f0073`006f0072 0057005c`00740066 00000000`0647dc30 : mswsock!SockSocket+0x502
10 000007fe`fdb81fe2 : 00000000`00000000 00000000`004c3f90 00000000`00000002 00000000`00000000 : mswsock!WSPSocket+0x23a
11 000007fe`fdb83600 : 00000004`00000017 00000000`00000002 00000000`00000000 00000000`00000000 : ws2_32!WSASocketW+0x112
12 000007fe`fdb84b60 : 000007fe`00000002 00000000`03d47f60 00000000`00000000 00000000`004a6ea0 : ws2_32!GetProtocolStateForFamily+0x7c
13 000007fe`fdb83332 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`0647df04 : ws2_32!LookupAddressForName+0x100
tcpip!WfpAleCaptureSecurityInformation
WfpAlepLookupProcessInformation 函数的代码:
.text:0000000000068EB0 mov [rsp+arg_0], rbx
.text:0000000000068EB5 push rdi
.text:0000000000068EB6 sub rsp, 40h
.text:0000000000068EBA mov rdx, [rdx]
.text:0000000000068EBD mov rbx, r8
.text:0000000000068EC0 mov rdi, rcx
.text:0000000000068EC3 test rdx, rdx
.text:0000000000068EC6 jz loc_9894A
.text:0000000000068ECC
.text:0000000000068ECC loc_68ECC: ; CODE XREF: WfpAlepLookupProcessInformation+2FA9Ej
.text:0000000000068ECC lea r8, [rsp+48h+var_28]
.text:0000000000068ED1 lea rcx, gAleMasterHashTable
.text:0000000000068ED8 call cs:__imp_RtlLookupEntryHashTable
.text:0000000000068EDE test rax, rax
.text:0000000000068EE1 jz loc_9896E
.text:0000000000068EE7
.text:0000000000068EE7 loc_68EE7: ; CODE XREF: WfpAlepLookupProcessInformation+2FAB8j
.text:0000000000068EE7 add rax, 0FFFFFFFFFFFFFFB8h
.text:0000000000068EEB cmp [rax], rdi
.text:0000000000068EEE jnz loc_98953
.text:0000000000068EF4 mov [rbx], rax
.text:0000000000068EF7 xor eax, eax
.text:0000000000068EF9
.text:0000000000068EF9 loc_68EF9: ; CODE XREF: WfpAlepLookupProcessInformation+2FAD9j
.text:0000000000068EF9 mov rbx, [rsp+48h+arg_0]
.text:0000000000068EFE add rsp, 40h
.text:0000000000068F02 pop rdi
.text:0000000000068F03 retn
最后 call cs:__imp_RtlLookupEntryHashTable 返回 0 ,出错,但是为何出错还是一头雾水
到底是360AntiHacker64中做了什么么?逆向在360AntiHacker64 没有文件操作的痕迹。那么到底是否是360AntiHacker64有问题呢?
使用U盘启动,然后修改360所有的exe 的名字,所有的sys都改名,IE能上网了。
然后将360AntiHacker64.sys 保留 也能上网,再实验将360Box64.sys保留,问题出现了。并且沙箱初始化过程很慢。
因为我们的沙箱和360沙箱用的都是minifilter 文件过滤技术。因此如果一个文件的访问,比如
CreateFile --->我们的驱动--->360box64.sys--->ntfs驱动
或者CreateFile --->360box64.sys--->我们的驱动-->ntfs驱动
那么谁在前呢?注册表中 Altitude 决定的 360box64为 : 382310 我们的为140000,我们的驱动在后面运行
当我把此驱动的Altitude 修改为382311 ,重启后,OK
因为同为文件过滤驱动,你重定向后的路径需要传递给下个驱动,而下个驱动怎么操作不知道,是否处理也不知道,是否360box64 对IE的文件操作进行了过滤也没有进行深究。
其中还发生了一些插曲:
    1 观察驱动之间的通讯,都是构造IRP然后调用IofCallDriver
    2 调用其他驱动中的函数,找到其他驱动的DeviceObject 然后获得Device扩展,然后使用其中的函数指针
    3 驱动和应用层通讯竟然使用物理内存映射到虚拟内存然后和应用层共享
    4 在进程被杀掉后,进程的thread都被释放但是进程并没有消失,只是在人物管理器中不见了。
    比如讲360AntiHacker64改名后,被修改了回来。所以干脆把exe和sys干脆都改名字,省着有些保护程序碍事。
找到问题定位问题是很费事的事情,修改就简单多了。

在沙箱中IE不能上网的解决方法相关推荐

  1. win7宽带已连接但是有感叹号无法上网的解决方法

    网络图标显示感叹号是很常见的问题,可是有些win7 32位旗舰版用户已经连拨号连接成功了,也显示"已连接",可是网络图标依旧还有感叹号,并且提示无网络访问,网页也打不开,网络诊断后 ...

  2. win11网络无法连接怎么办 Windows11连不上网的解决方法

    win11系统是现在微软最新的操作系统,尽管目前只是预览版,但是已经有不少人下载并体验中了.不过有些网友遇到了一些问题,Win11联网连不上怎么办?不知道为什么win11无法联网.下面小编就教下大家w ...

  3. 电信宽带连接不上无线可连接服务器,电信宽带wifi连不上网的解决方法

    电信宽带出错那是常有的事,出现连接不上网络一般会提示错误代码,原因可能是系统设置问题,也可能是网络运营商那边出现问题.下面是学习啦小编为大家整理的关于电信宽带wifi连不上网,一起来看看吧! 电信宽带 ...

  4. 台式计算机突然连接不到网络,电脑突然网络感叹号导致不能上网的解决方法

    相信平时使用电脑的时候都遇到过电脑突然网络感叹号导致不能上网的问题,对于新手的你肯定会不知所措了.那么我们要如何解决该问题呢?下面装机之家分享一下电脑突然网络感叹号导致不能上网的解决方法,如果你遇到相 ...

  5. WIN10网络显示DNS服务器可能不可用,Win10系统总是提示DNS解析失败无法上网的解决方法...

    近日有不少win10系统用户在上网的时候,发现总是提示dns解析失败,导致无法正常打开网页,想必有很多用户遇到过这样的情况吧,接下来小编就给大家分享一下Win10系统总是提示DNS解析失败无法上网的解 ...

  6. 计算机浏览器无法上网怎么办,电脑ie浏览器无法上网,浅析win10电脑ie浏览器无法上网的解决方法...

    今天小编给大家浅析win10电脑ie浏览器无法上网的解决方法,使用win10系统过程中,当你遇到Edge浏览器能上网,IE浏览器不能上网的问题时,可参照以下的方法进行解决. 最近有用户反馈,使用Win ...

  7. 笔记本不能用无线网策略服务器,笔记本不能上网的解决方法适用于使用无线路由器上网...

    笔记本不能上网的解决方法适用于使用无线路由器上网 发布时间:2013-12-31 11:03:17   作者:佚名   我要评论 无法上网了,首先得判断一下你是通过什么来上网的,这里先分析通过无线路由 ...

  8. 小米路由器显示网络未连接到服务器,小米路由器4不能上网了如何解决?小米路由器4无法上网的解决方法汇总介绍...

    小米路由器4不能上网了如何解决?用户是=使用小米路由器4的时候忽然发现没网了,怎么办呢?接下来的文章中小编将会列举几种常见的问题,有兴趣的朋友可以阅读本文参考一下. 小米路由器4无法上网的解决方法汇总 ...

  9. FAST上网设置服务器未响应,fast路由器不能上网的解决方法

    随着网络技术的迅速发展,无线路由器的功能正在变得越来越复杂,已不再适合云计算.虚拟化以及数据中心开放.简单.可扩展的特性.下面是学习啦小编为大家整理的关于fast路由器不能上网的解决方法,一起来看看吧 ...

最新文章

  1. 在tnsnames.ora中配置监听
  2. 在c语言中函数的定义变量的值为,变量定义(C语言中变量的声明和定义)
  3. RocketMQ如何保证消息不丢失? 如何快速处理积压消息?
  4. iPhone 12性能首曝:6GB内存、A14“挤牙膏”
  5. apache2.4.7 make报错[exports.lo] Error 1 解决方法
  6. UVA11565 Simple Equations【数学+暴力】
  7. html显示python执行的结果_批量执行用例,且结果显示在html中,python控制台也会显示运行过程...
  8. 多关键字排序的c语言编程,常见排序——“计数排序(三关键字)”的源程序(C语言版)...
  9. 毕设题目:Matlab元胞自动机病毒仿真
  10. python爬虫毕业论文大纲参考模板_毕业论文大纲参考模板.docx
  11. android expandablelistview横向,Android 的ExpandableListView使用总结--二级展开树结构
  12. TwinCAT 3 file记录日志txt文件程序
  13. linux tc工具,Linux TC软件系统损坏自助恢复的工具.TC刷机,TC修复,TCPUP,TCP-UP
  14. 一群参与境内外赌博网站的开发的程序员被抓,网友:切勿面向监狱编程。。。...
  15. 0ctf writeup
  16. 《Globally and locally consistent image completion》图像修复论文解读
  17. HashMap、ConcurrentHashMap原理分析
  18. 5.交换机环路与VLAN
  19. 有趣的Python Challenge编程解谜游戏攻略二(5-9关)
  20. Trends in Plant Science | 植物微生物群失调与安娜-卡列尼娜原则

热门文章

  1. 容联云 PHP 实现短信发送验证码
  2. MDCC 2014移动开发者大会 参展商活动的小礼品
  3. word文档中设置的行距一样但实际显示的不一样
  4. 统一门户:基于网关的统一用户认证方案
  5. 二进制、八进制、十进制以及十六进制
  6. grails springboot_Spring Boot 和 Grails 的不同点
  7. 利用JavaFX实现风险中性下股票价格的二叉树模型
  8. 旋转框目标检测mmrotate v0.3.1入门
  9. 视频剪辑工具,批量给视频添加上下图片
  10. 正确认识形势 提升信心 增强斗志