010.编译指纹浏览器-绕过常见无头检测

修改webdriver

  • 打开文件 third_party\blink\renderer\core\frame\navigator.cc
//bool Navigator::webdriver() const {
//  if (RuntimeEnabledFeatures::AutomationControlledEnabled())
//    return true;
//
//  bool automation_enabled = false;
//  probe::ApplyAutomationOverride(GetExecutionContext(), automation_enabled);
//  return automation_enabled;
//}

bool Navigator::webdriver() const {
  return false;
}

修改rtt

  • 打开文件 third_party/blink/renderer/modules/netinfo/network_information.cc
//uint32_t NetworkInformation::rtt() {
//  MaybeShowWebHoldbackConsoleMsg();
//  std::optional<base::TimeDelta> override_rtt =
//      GetNetworkStateNotifier().GetWebHoldbackHttpRtt();
//  if (override_rtt) {
//    return GetNetworkStateNotifier().RoundRtt(Host(), override_rtt.value());
//  }
//
//  if (!IsObserving()) {
//    return GetNetworkStateNotifier().RoundRtt(
//        Host(), GetNetworkStateNotifier().HttpRtt());
//  }
//
//  return http_rtt_msec_;
//}

uint32_t NetworkInformation::rtt() {
  return 150;
}

修改Notification.permission

  • 打开文件 third_party/blink/renderer/modules/notifications/notification.cc
String Notification::PermissionString(
    mojom::blink::PermissionStatus permission) {
  switch (permission) {
    case mojom::blink::PermissionStatus::GRANTED:
      return "granted";
    case mojom::blink::PermissionStatus::DENIED:
      //return "denied";
      return "default";
    case mojom::blink::PermissionStatus::ASK:
      return "default";
  }

  NOTREACHED();
  //return "denied";
  return "default";
}

修改user-agent

针对无头浏览器的HeadlessChrome:

  • 打开文件C:\src\chromium\src\headless\lib\browser\headless_browser_impl.cc
    修改:
//const char kHeadlessProductName[] = "HeadlessChrome";
const char kHeadlessProductName[] = "Chrome";

针对无头的plugin检测

  • 修改third_party\blink\renderer\modules\plugins\navigator_plugins.cc
// static
//DOMPluginArray* NavigatorPlugins::plugins(Navigator& navigator) {
//  return NavigatorPlugins::From(navigator).plugins(navigator.DomWindow());
//}

// static
DOMPluginArray* NavigatorPlugins::plugins(Navigator& navigator) {
  DOMPluginArray* pluginsArray = NavigatorPlugins::From(navigator).plugins(navigator.DomWindow());
  pluginsArray->UpdatePluginData();
  return pluginsArray;
}
  • 再修改 third_party\blink\renderer\modules\plugins\dom_plugin_array.cc
void DOMPluginArray::UpdatePluginData() {
  if (should_return_fixed_plugin_data_) {
    dom_plugins_.clear();
    //if (IsPdfViewerAvailable()) {
      // See crbug.com/1164635 and https://github.com/whatwg/html/pull/6738.
      // To reduce fingerprinting and make plugins/mimetypes more
      // interoperable, this is the spec'd, hard-coded list of plugins:
      Vector<String> plugins{"PDF Viewer", "Chrome PDF Viewer",
                             "Chromium PDF Viewer", "Microsoft Edge PDF Viewer",
                             "WebKit built-in PDF"};
      for (auto name : plugins)
        dom_plugins_.push_back(MakeFakePlugin(name, DomWindow()));
    //}
    return;
  }
  

相关推荐

  1. 010.编译指纹浏览器-检测

    2024-06-06 01:32:03       27 阅读
  2. 011.编译随机指纹浏览器-禁用webRTC-售卖成品

    2024-06-06 01:32:03       32 阅读
  3. 浏览器 Puppeteer-案例demo

    2024-06-06 01:32:03       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 01:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 01:32:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 01:32:03       82 阅读
  4. Python语言-面向对象

    2024-06-06 01:32:03       91 阅读

热门阅读

  1. bug清单问题

    2024-06-06 01:32:03       31 阅读
  2. 【Bug】修改计算机名称出现ip无法连接mysql数据库

    2024-06-06 01:32:03       26 阅读
  3. electron录制工具-系统托盘

    2024-06-06 01:32:03       30 阅读
  4. WPF中Ignorable

    2024-06-06 01:32:03       30 阅读
  5. 用户反馈解决方案 —— 兔小巢构建反馈功能

    2024-06-06 01:32:03       37 阅读
  6. C语言从头学16——数据类型(二)

    2024-06-06 01:32:03       32 阅读
  7. 攻击渗透思考题

    2024-06-06 01:32:03       32 阅读
  8. kafkastream

    2024-06-06 01:32:03       28 阅读
  9. #经验分享#学习方法

    2024-06-06 01:32:03       29 阅读
  10. 资源目录与云SSO

    2024-06-06 01:32:03       27 阅读
  11. 数据库漫谈-PostgresSQL

    2024-06-06 01:32:03       30 阅读
  12. git使用

    2024-06-06 01:32:03       28 阅读
  13. Unity中将图片做成Prefab的步骤

    2024-06-06 01:32:03       28 阅读
  14. 将爬虫项目打包到Docker的基本

    2024-06-06 01:32:03       20 阅读