QQ浏览器HD iOS 动态化/热修复方案QBDF(0) 【简书被冻结-搬运】

原作时间:2019~2021年

此次共享,腾讯内网 / 外网同步发布。

内部代码地址:https://git.code.oa.com/fatboyli/QBDF

外部代码地址:GitHub - ventureli/QBDF

两年前的一个混淆包(无源码):GitHub - ventureli/VLOCInterpreter

作者:腾讯fatboyli(李文强)

回想起来从写QBDF第一行代码到现在已经两年半了,QBDF已经平稳的在线运行连年都没有被查到,之前因为内部有几款同类商品一直在用,怕苹果盯上,像针对JSPatch那样符号化匹配屏蔽,所以一直没有开源。两年多过去了,咨询了当初的项目组。这个热修复框架已经内部不再使用了,可以拿来分享给大家。本系列博客一共分以下几个部分。

QBDF有以下特点:

• QBDF 兼容编译类型和运行类型错误,不会造成crash

• 不通过javascript做桥接的动态框架,包含虚拟机和解释器

• QBDF 兼容OC语法.

• QBDF-VM 运行速度比WAX高167%

• QBDF 支持 “block”, “super”, “property” , “SEL” , “dispatch_xx” 等OC语法特征 ...

• QBDF 也支持c 内存操作,比如“malloc”, “free”, “a[1]” ,“&a”, “*p”...

• QBDF 利用内存对齐策略可以进行Struct结构体自定义或者和OC内部进行结构体赋值

• 体验网址:https://github.com/ventureli/VLOCInterpreter

本系列包含主要两大部分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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值