You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何欺骗Windows 10/11使其认为存在互联网连接(UWP程序评估场景)

如何欺骗Windows 10/11使其认为存在互联网连接(UWP程序评估场景)

作为经常在离线环境里做UWP程序安全评估的分析师,我来分享几个实用的方法,完美适配你的测试场景——毕竟UWP确实依赖系统级的联网检测API,和普通桌面程序的逻辑不一样:

  • 修改网络适配器TCP/IP配置,让系统认为网络已连接
    首先,Windows显示“无连接”大多是因为适配器没有获取到有效IP。你可以手动给离线的网卡分配一个静态IP:

    1. 打开「控制面板 > 网络和共享中心」,找到当前的离线适配器(比如以太网)
    2. 右键选择「属性」,找到「Internet协议版本4 (TCP/IPv4)」并双击打开
    3. 选择「使用下面的IP地址」,随便填一个私网IP(比如192.168.1.100),子网掩码设为255.255.255.0,网关填一个虚构的地址(比如192.168.1.1),DNS可以填8.8.8.8或者你第二台机器的IP
    4. 确定后,系统会立刻把网卡状态改成“已连接”,不过这只是第一步,UWP可能还会检测能否访问微软的联网验证节点,需要配合下面的方法。
  • 劫持微软联网检测域名,用第二台机器模拟响应
    Windows的「网络连接状态指示器(NCIS)」会定期访问www.msftconnecttest.com来确认是否真的有网,UWP的API就是依赖这个服务的结果:

    1. 在你的第二台离线机器上,搭建一个简单的HTTP服务器(比如用Python的python -m http.server 80命令,或者用轻量的HTTP服务工具)
    2. 在第一台测试机上,用管理员权限打开C:\Windows\System32\drivers\etc\hosts文件,添加一行:[第二台机器的IP] www.msftconnecttest.com
    3. 执行命令ipconfig /flushdns刷新DNS缓存
    4. 当Windows发起联网检测时,第二台机器的服务器会返回200 OK的响应,系统就会判定为“已连接到互联网”,UWP的检测逻辑也就被骗过了。
  • 用组策略/注册表强制跳过联网检测
    如果不想折腾网络配置,直接让系统强制显示有网也是可行的:

    • 针对Windows专业版/企业版(组策略):
      1. 按下Win+R,输入gpedit.msc打开组策略编辑器
      2. 导航到「计算机配置 > 管理模板 > 网络 > 网络连接状态指示器」
      3. 找到「关闭网络连接状态指示器活动测试」,设为「已启用」;再找到「将网络标记为已连接,即使连接到的网络没有互联网」,也设为「已启用」
      4. 不用重启,刷新一下网络状态就生效了
    • 针对Windows家庭版(注册表):
      1. 按下Win+R,输入regedit打开注册表编辑器
      2. 导航到HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows,如果没有NetworkConnectivityStatusIndicator这个项,右键新建项并命名
      3. 在这个项下面新建两个DWORD(32位)值:
        • 命名为NoActiveProbe,值设为1(关闭主动检测)
        • 命名为ForceInternet,值设为1(强制标记为有网)
      4. 重启电脑后,系统就会一直显示有互联网连接,不管实际网络情况

备注:内容来源于stack exchange,提问作者zavryzr

火山引擎 最新活动