前言
上一篇文章, 解析了blf文件的结构, 知道blf是个zip文件, 这次, 我们要非常详细地分析WebData.bin, 即Web管理控制页面的数据文件
WebData.bin的文件结构
分3部分, 头部, 文件区, 尾部, 下面有C结构体的方式描述一下
1 | struct webdata{ |
解析代码(Java版)的地址: https://gitee.com/wendal/Air720Master
解析和重整流程
- 根据WebData.bin的数据结构, 将数据文件解析为 头部/文件列表/尾部, 3部分
- 过滤文件列表
- 输出头部, 根据文件列表输出文件数据, 输出尾部
过滤规则:
为了实现 网卡模式下获取Air720的运行状态, 我们需要xml和cgi文件
所以, 根据后缀进行过滤即可, 可以到一个 110kb WebData.bin
这个文件的大小比AddtionalAPN.bin稍小, 而两者会占用一样的空间(根据A720.blf的分析可知)
使用7zip打开原始的blf文件, 替换WebData.bin, 刷机, 带板子启动后, 访问 http://192.168.0.1/login.cgi 出现空白页面, 访问 http://192.168.0.1/xml_action.cgi 出现为XML格式的数据,代表成功
精简好的WebData.bin下载地址: https://gitee.com/wendal/Air720Master/attach_files
进一步操作,代理Web管理界面
由于我们精简了xml和cgi之外的文件,打开 http://192.168.0.1 只会出现404页面, 那么,怎么办呢? 我们可以代理它
基于对WebData.bin的解析, 我们可以导出WebData.bin的全部数据文件
而,网页控制台对设备的读写操作,均通过login.cgi和xml_action.cgi两个URI完成.
所以, 我们可以做一个web服务, 将cgi请求导向设备, 其他文件本地提供
最终效果我做了一个Java实现,其他编程语言可以参考一下
地址依然是: https://gitee.com/wendal/Air720Master 运行后, 访问 http://127.0.0.1:8080 即可看到原版登录界面,可正常登录,进行配置