/r0chrome

r0chrome是一款对chromium源码进行定制的浏览器,支持爬虫/JS逆向工程师进行辅助分析网页

Primary LanguageC++

  • r0chrome

    • r0chrome是一款对chromium源码进行定制的浏览器,支持爬虫/JS逆向工程师进行辅助分析网页
    • 浏览器随机指纹模块(没有给出编译后的成品)

      • 实现功能:

      gpu信息随机
      webgl图像指纹随机
      canvas画布指纹随机
      音频指纹随机随机
      canvas字体指纹随机
      css字体指纹随机
      屏幕分辨率随机
      elements大小随机
      
    • 浏览器环境自吐模块

      • 实现功能(后续会增加更多的对象监控)

      window 对象监控
      navigator 对象监控
      document 对象监控
      history 对象监控
      screen 对象监控
      localStorage 对象监控
      sessionStorage 对象监控
      
      • 原理简介

        • 对chromium源码中全局对象定义进行修改/添加,使得全局对象变得可以覆盖,从而使用JS的代理器对全局对象进行监控
        • 对debugger关键字替换为debuggee 无视无限debugger
      • 源码

        • diff文件在monitor_change_code文件夹下
      • 使用方法

        • 在浏览器控制台中执行proxy.js的代码(推荐在JS最先执行的时机断点(事件侦听器断点->脚本->脚本的第一条语句)然后运行js代码,最先取得全局对象的控制权)
        • 然后在网页上正常操作即可在控制台得到打印的对象信息,进行环境监控,辅助JS补环境
      • 使用方法以及效果

        • 先设置断点 然后刷新网页 即可在JS最先执行的时机停下(需要注意安装油猴后,会对此方法产生影响导致proxy.js脚本不生效) screenshot
        • 执行proxy.js后取消断点 然后执行网页js screenshot
        • 成功监控对象 screenshot
      • 关于iframe中的对象代理

        • 参考iframe_proxy.js的代码即可完美监控iframe中的contentWindow和contentDocument(注入时机和proxy.js相同 先执行proxy.js)
        • screenshot
        • screenshot
      • 编译成品

        • 目前只有Win版本
          • 便携式
            • 解压7z文件打开chrome.exe即可使用
          • 安装包 mini_install直接安装(适用于有管理员权限的电脑)
      • Tips

        • 碰到报错的方法或无法打印的对象(报错的)可以在proxy.js代码中进行过滤
        • 安装油猴会导致上述最早注入的时机不好找,因为会先加载油猴的环境并没有进入到目标代码跑的环境
        • 碰到在iframe中js加解密的网页注入时机应该选择在iframe标签创建完成并加入到document.body的时候
        • 结合 https://github.com/cilame/v_jstools 一起分析会有奇效
      • 建议

        • 问题中可以提还需要监控哪些全局对象(原型链的监控v_jstools已经写了很多) 作者有空会去改 随缘发布新版
  • 后续更新方向

    • todo
      • js hook的代码制作成chrome插件一键启动!
      • 直接内置v_jstools的监控避免冲突(可能抹去的console的方法会导致v_jstools无法打印)
      • 自定义console.log 并去掉原始的console.log 防止控制台/cdp检测 和 console.log被抹去或被console.clear清掉日志(目前通过js hook方式去实现)
      • 更新其他全局对象监控
  • 联系我们

    • 加v:r0ysue 进浏览器指纹随机定制群

    • 作者v: lenganlan

  • 感谢支持!!

screenshot