嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件,支持用户插件,协议,javascript对象以及javascript扩展,宿主程序可以随意地控件资源下载,导航,下下文内容和打印等,并且可以跟Google Chrome浏览器一起,支持高性能和Html5 技术。

Hook 技术又叫做钩子函数,是一种通过劫持原函数在原函数的运行的基础上运行你所需要执行代码,此时你的代码是可以获取到原函数的程序上下文(参数等等)

因突然心血来潮想爬一爬微信公众号文章的数据,为此查阅了相关资料,发现都是以抓包方式居多,都要经过一大堆步骤配置才可进行爬取,同时效率也不见得的非常之高,便想用Hook掉Cef的相关API来进行,在Hook的过程无意中发现微信内置浏览器的启动参数并没有写死,并且发现了微信自身的启动参数,并且根据Cef的启动参数试着在命令行添加并运行,发现微信团队并未对启动参数做限制。

此时可以通过在启动参数里增加 --remote-debugging-port=8000 可以开启Cef的远程调试方式。当用内置浏览器打开的时候访问http://localhost:8000/这个地址时可以发现

该页面是由Chromium开启远程调试之后生成,当在微信PC端微信打开该浏览器页面的时候,该页面便会生成相应的调试页面,此时点进去页面是显示空白的,因为缺少了devtools_resources.pak(此文件包含Chrome开发者工具所需的非本地化资源,缺少这个文件,Chrome开发者工具将无法运行),微信安装包都是缺少devtools_resources.pak,需要安装对应版本的pak文件,安装在微信启动目录里。当安装好对应的pak文件再访问的时候会提示


由于我使用的谷歌版本过高,该函数是已经执行不了的了,导致控制台页面无法生成,此时可以通过更换对应函数的版本来进行访问,我这边是使用的是 Opera 66.0.3515.115,进入后便是控制台页面

同时当你在内置浏览器页面右键的时候会发现右键选项多出了几个按钮


此时你已经可以通过开启控制台的方式调试内置浏览器页面了。

同时由于由远程调试协议的存在

chromedevtools.github.io/devtools-pr…

你甚至可以通过编程语言操控浏览器

附上远程操控代码 具体协议内容请看上方地址 微信内置浏览器的协议版本为1.1 具体已无法找到,请参考1.2版本的API

因为远程协议的存在,我尝试把devtools_resources.pak文件从微信目录去掉,并开启远程调试协议,此时在浏览器页面右键,此时其他的选项已消失了,只剩下原本的几个选项,但是仍然可以通过调试协议连接调试端口进行操作,并且当页面关闭之后仍然可以操纵浏览器页面。

const CDP = require('chrome-remote-interface');async function example() {    let client; try {        // connect to endpoint        client = await CDP({ port: 8000, local: true });        const { Network, Page, Runtime } = client;        // setup handlers        Network.requestWillBeSent((params) => { });        Network.responseReceived((params) => { })        // enable events then start!             await Network.enable(); await Page.enable(); Page.navigate({ url: 'chrome://version' }).then((res) => { }); await Page.loadEventFired();    } catch (err) { console.error(err); } finally { if (client) { await client.close(); } }} example();

利用该方法可以干什么呢?

场景1 某黑产人员通过修改微信目录下的启动文件,用另一个启动文件启动了微信并加上了远程调试端口,并监听着用户是否打开了页面,由于微信刚启动是无法远程连接上去需要打开第一个页面后才可连接上,会通过访问http://localhost:port/json查看是否页面开启否,当用户开启第一个页面后便会连接上,当用户关闭页面时便在后台偷偷摸摸的进行各种操作(登陆各种需要微信授权的第三方页面,登陆成功后获取到用户的Cookie值进行各种操作)

场景2 爬微信公众号文章数据 爬各种需要微信第三方授权才能获得到数据 利用微信多开 配合调试协议进行大规模???

非常感谢小姐姐所提供的情报

devtools_resources.pak下载地址

链接: [pan.baidu.com/s/12ZaPeLaR…](链接: https://pan.baidu.com/s/12ZaPeLaRn7cztDSNYqRHFQ)

提取码 ytyz

腾讯网盘:share.weiyun.com/55lX4Ff

微信内置浏览器版本信息

由于各个微信版本的的pak文件不同的原因 建议先用上述的代码运行到以下页面
再根据该页面–resources-dir-path值来放置pak文件


作者:enviousbear
链接:https://juejin.im/post/5e60c5556fb9a07cc7474b04

服务推荐

  • 蜻蜓代理
  • ip代理服务器
  • 企业级代理ip
  • 微信域名检测
  • 微信域名拦截检测

微信PC端浏览器内置浏览器相关推荐

  1. 调试微信 PC 端的内置浏览器界面

    2021-08-03 最新更新 好久没看,微信也更新了好几版.下面的方法并没有失效,不过上了 3.3.x 后的微信版本已经禁用了右键和查看 chrome://version 的功能了.进过实测,最后一 ...

  2. js判断是否微信PC端打开内置浏览器

    function isWeChat(){var ua = window.navigator.userAgent.toLowerCase();if(ua.match(/MicroMessenger/i) ...

  3. 微信这个坑**的内置浏览器--我很无语

    2019独角兽企业重金招聘Python工程师标准>>> 先来说一下微信的内置浏览器--qq浏览器x5内核,网上去查了一下它的评价,反正没有看到一篇是说它好的,看看知乎大神的评价,真的 ...

  4. 移动端常见内置浏览器的useragent

    微信: Mozilla/5.0 (Linux; Android 8.1.0; vivo X21A Build/OPM1.171019.011; wv) AppleWebKit/537.36 (KHTM ...

  5. 微信内置浏览器调试和调试微信内的H5页面汇总(持续更新...)

    调试PC端微信内置浏览器(只支持3.2.1以下的) (1)添加以下代码, 查看chrome版本和内核安放位置 <html><script type="text/javasc ...

  6. 微信内置浏览器使用DevTools实现自动顶帖脚本

    接<豆瓣自动顶帖机器人JS脚本>这篇,对于仅能在微信内置浏览器中正常打开或使用的网页,不能使用开发者工具,不能使用Tampermonkey插件.例如微赞的广州租房论坛微信版http://w ...

  7. 利用微信内置浏览器Chrome漏洞实现远控

    环境:微信PC版本3.2.1.112 利用步骤: 1.首先使用CobaltStrike生成一个x86格式的shellcode. 2.搭建一个测试网站,将下方0day poc放入. ENABLE_LOG ...

  8. PC版微信内置浏览器 缓存文件保存位置

    PC版WX内置浏览器 缓存文件保存位置 C:\Users\username\AppData\Roaming\Tencent–000\WeChat\xweb\web\Code Cache PC版微信内置 ...

  9. 转载--video标签在微信内置浏览器和QQ浏览器(手机端)的怪异现象

    用H5做了一个新闻信息展示的网页,video标签总是处于最顶层,调节z-index的值不起作用,对于flash也是一样的情况,flash已设置wmode属性.在PC端和手机端大部分浏览器(360.小米 ...

最新文章

  1. 虞旦盛老师 的《数学分析续》课件
  2. javascript仿韩国Google效果
  3. 044_CSS33D转换
  4. Apache Camel:基于企业集成模式(EIP)的开源集成框架
  5. [tomcat]-tomcat8启动时SessionIdGeneratorBase.createSecureRandom耗时
  6. 动态规划/贪心 - 无重叠区间
  7. SOL注入——HTTP头部注入(2)(七)
  8. java中Object.equals()简单用法
  9. ireport怎么套打_DNF小小王国历险记巨人击退战怎么打 巨人击退战通关技巧攻略...
  10. python循环引用是什么_细说Python的循环调用、循环引用和循环导入
  11. LVS+ldirector实现负载均衡
  12. 算不算被虚度的这几年
  13. c语言笔记照片_C语言入门这一篇就够了-学习笔记
  14. 设计模式(一)单例模式:1-饿汉模式(Eager)
  15. cve2018 linux内核提权漏洞,CVE-2018-18955:较新Linux内核的提权神洞分析
  16. android 优秀项目,11个优秀的Android开发开源项目
  17. R语言绘制列线图nomogram分步骤从头到尾实战
  18. c语言删除元素1116,C语言网-1116题-IP判断
  19. java pem 读取_java读取微信Pem格式证书对字段加密
  20. 最新消息: 百度办公楼门口拉横幅抗议百度竞价广告(图)

热门文章

  1. JS 获取指定日期的前几天或者几天
  2. 计划预算(PV)、实际完成工作预算(EV)、实际成本(AC)
  3. ARM_Linux开发之TFTP应用
  4. wps可以登录网页版_wps网页版入口_WPS个人免费版_点点游
  5. Stream操作666
  6. Civil 3d 之枚举 SpiralType
  7. 推荐几个前端 模板 框架,收藏
  8. 律师学python有什么用呢_《律》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  9. 英语它在计算机旁边怎么读,计算机的英语怎么读?
  10. Boundary Regularized Convolutional Neural Network for Layer Parsing of Breast Anatomy in ABUS