跳转至

补环境框架使用介绍

本说明文档简单介绍使用补环境框架来调试(和浏览器无环境调试)来补环境,以过 js 检测执行出正常结果。

1. 前提条件

补环境框架使用前准备如下:

  • 安装 node(版本尽量新,支持 es6 语法)
  • 安装 node
    • 安装 node-inspect 库,浏览器无环境调试时需要(npm install node-inspect)
    • 安装 node vm2,补环境框架依赖此库(npm install vm2)
  • 谷歌浏览器,或谷歌内核的浏览器,结合浏览器无环境调试时需要
  • 一些 js 调试工具,用来快速测试补环境框架导出的代码运行是否正常
    • fiddler js 调试插件;乐易编程助手等,太多了,看自己喜好。

2. 补框架方法

补环境是个很繁杂的工作,可以先补 windownavigatorlocationdocument 这类的原型,其它复杂的可以等到具体 js 验证时再完善

2.1. 补框架结构介绍

补环境框架主要部分在 CatVm2 下的 browser 中,即图中 3 部分。

image-20211111154324304

根据上图简单介绍各部分功能:

  • 1 部分 launch.jsonvscode 运行配置,包含 node 启动程序和无浏览器调试的配置
  • 2 部分 node_modules 为安装 vm2node 库文件
  • 3 部分 browser 中为主要内容
  • 4 部分 HTMLElements 文件中用来存储 HTMLElement 各种对象所需要的文件,比如 div(对应 HTMLDivElement 文件),canvas(对应 HTMLCanvasElement 文件)
  • 5 部分为主要 dom 原型链结构需要的文件,需要不断完善其内容
  • 6 部分为框架的工具
  • tools.node 是将以下功能拼接而已,不重要
  • vm_memory 为框架内存,用于缓存参数及配置
  • vm_print 为日志输出
  • vm_proxy 为代理模块
  • vm_safefunction 为保护函数模块
  • vm_tools 更改浏览器的某些参数、
  • catvm2.node 同样为拼接 dom 信息而已
  • 7 部分为开发方便补环境的方法,比如批量导出原型链上的属性之类的,暂不完善

image-20211112085419983 - 8 部分为程序为调试时需要修改的部分 - code 为当前调试站的 js - index 为框架入口文件,需要确认 codefile 的名字与当前调试文件 code 的名字一致

2.2. 框架调试方法

调试方法以问财站点为例,需要获取请求 cookie 中的 v 参数。 对应站点为:问财

  • 需要将定位到的 js 部分或整体 js 放到 8 部分的 code 文件中,用 try catch 整体包裹上

    image-20211111163531295

  • 打开框架的调试和打印输出功能

  • 看过 补框架结构介绍 部分后,聪明的你应该知道,修改 catvm.memory.config 等相关配置即可输出日志。

  • 新版框架将所有调试输出存储在 catvm 对象上,命令 catvm.print.getallcatvm.memory.print 都可以查看。

    image-20211111164511570

  • 然后调试或无环境浏览器调试即可,根据报错缺啥补啥,不断完善环境。

image-20211111170258960

  • 调试 js

一般调试将报错的地方解决,测试参数的有效性后,就可以导出供 python 使用了。

image-20211111171127194

3. 结语

补环境框架可以解决在手补环境时大量的重复工作,增加键盘和鼠标的寿命。 但要是将此框架变得健壮,需要在调试各种站点时不断完善。或者有时间根据真实浏览器的原型链慢慢补全,也是个繁琐的工作。

注意事项:

  • 像一些请求头 uahrefhostname 等参数都写死了,没有问题,可以在 code 具体站点中重定义。
  • 可能遇到导出的代码 v8js 调试工具正常,但是 node 运行报错,请使用 node_vm 库运行,或根据浏览器输出内容仔细调试。

评论

回到页面顶部