近期在解决一个问题,在我们的沙箱中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. VMware虚拟机的CentOS无法上网的解决方法

    前言:由于Linux下很多软件安装必须网络环境下进行,因此,对于如何在VMware下进行上网,我折腾了至少三天,今天上午,也即五一劳动节,终于搜到一遍技术文章,经过自己实践,VMware下Linux的 ...

  2. VS2012中丢失ArcGIS模板的解决方法

    VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及ArcObjec ...

  3. Win8 传统桌面下无法上网的解决方法

    Win8 很酷,就连出现的问题也都酷得不行~ 之前遇到的一些问题与解决方法,避免重新安装 1. Word 2013下, 输入法突然秀逗, 经常按了一个键后, 死循环输入该字符直到死机 解决方法: 进入 ...

  4. js中style.display=""无效的解决方法

    本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多 ...

  5. java开发中遇到的问题及解决方法(持续更新)

    摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...

  6. win10只有edge浏览器能上网的解决方法

    问题描述:电脑就只有edge浏览器和自带的邮件可以上网,但是QQ Chrome,360浏览器都无法上网: 解决方法:打开命令提示符(管理员),执行netsh winsock reset,重启系统就好了 ...

  7. SpringBoot拦截器中无法注入bean的解决方法

    SpringBoot拦截器中无法注入bean的解决方法 在使用springboot的拦截器时,有时候希望在拦截器中注入bean方便使用 但是如果直接注入会发现无法注入而报空指针异常 解决方法: 在注册 ...

  8. asp.net url址址中中文汉字参数传递乱码解决方法

    中文乱码是网站开发中会常碰到的问题,今天我们来讲一下关于url址址中中文汉字参数传递乱码解决方法,有需要的朋友可以参考下.在cs文件里传参的时候用UrlEncode: Response.Redirec ...

  9. 用virtualbox虚拟机无法上网的解决方法

    用virtualbox虚拟机无法上网的解决方法   首先保证你的本机是可以正常上网的   启动虚拟机系统前,选择安装好的虚拟PC,点击"设置"按钮,然后切到"网络&quo ...

随机推荐

  1. PHP CURL header 设置HOST主机头进行访问并 POST提交數據

    $host = array("Host: act.qzone.qq.com");// 域名不帶http://$data = array(            'aa' => ...

  2. 字符串常用方法(转载--https://www.cnblogs.com/ABook/p/5527341.html)

    一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创建 ...

  3. 火狐插件hostadmin

    windows的host文件:  c:\Windows\System32\drivers\etc\hosts 手动修改hosts文件费时又费力,可直接在FF附加组件中搜索hostadmin下载安装: ...

  4. jeecms怎么修改后台访问路径?

    1,修改后台访问路径: 如:http://localhost:8080/jeeadmin/jeecms/login.do 改:http://localhost:8080/hailou/index.do ...

  5. WPF 单个模块换肤

    xmal: <Window x:Class="wpfSkin.MainWindow" xmlns="http://schemas.microsoft.com/win ...

  6. 使用junit单元测试,报Cannot instantiate test(s): java.lang.SecurityException: Prohibited package name: java.com.com.test

    在测试类中不能一级包名不能以java开头, 将包改为com.com.test就好了.

  7. python中str的常用方法汇总(1)

    a = 'strABC' # Strabc : 首字母大写,其他全部小写 b = a.capitalize() print(b) # STRABC : 全部大写 c = a.upper() print ...

  8. JSP-JSP

    JSP(Java Server Page) 1 JSP简介 2 JSP脚本和注释 3 JSP的运行原理 jsp本质上就是Servlet 看在服务器里面提应用就应该明白了 我们可以看下这个源码 目录地址 ...

  9. Leetcode645.Set Mismatch错误的集合

    集合 S 包含从1到 n 的整数.不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复. 给定一个数组 nums 代表了集合 S ...

  10. pycharm最新激活码2017

    最新的2017激活码 BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZW ...