原作时间:2019~2021年
此次共享,腾讯内网 / 外网同步发布。
内部代码地址:https://git.code.oa.com/fatboyli/QBDF
外部代码地址:GitHub - ventureli/QBDF
两年前的一个混淆包(无源码):GitHub - ventureli/VLOCInterpreter
回想起来从写QBDF第一行代码到现在已经两年半了,QBDF已经平稳的在线运行连年都没有被查到,之前因为内部有几款同类商品一直在用,怕苹果盯上,像针对JSPatch那样符号化匹配屏蔽,所以一直没有开源。两年多过去了,咨询了当初的项目组。这个热修复框架已经内部不再使用了,可以拿来分享给大家。本系列博客一共分以下几个部分。
QBDF有以下特点:
本系列包含主要两大部分QBDF解释器+QBDF虚拟机的部分。主要目录如下
QQ浏览器HD的动态热修复方案的前世今生(1)
QBDF的总体架构设计(2)
QBDF解释器-词法分析(3)
QBDF解释器-从C89设计简化的OC BNF范式(4)
QBDF解释器-词法分析(编译原理)(5)
QBDF解释器-语法至导翻译与递归子程序设计(编译原理)(6)
QBDF解释器-中间代码指令设计与生成(7)
QBDF解释器-WHILE-FOR语法糖指令翻译与回填方案(8)
QBDF解释器-云解释器设计(9)
QBDFVM-总体设计(10)
QBDFVM-Context/符号表设计(11)
QBDFVM-12条指令的翻译(12)
QBDFVM-多线程与BLOCK设计(13)
QBDFVM-基于内存交换的STRUCT设计(14)
QBDFVM-BLOCK内存难点解决(15)
QBDFVM-Super继承链的解决(16)
QBDFVM-其他难点与解决方案(17)
-------------------------------------
QBDFVM-不足与未来可扩展方向(18)