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)
總結
以上是生活随笔為你收集整理的QQ浏览器HD iOS 动态化/热修复方案QBDF(0) 【简书被冻结-搬运】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 条形码和二维码 生成以及打印
- 下一篇: 精益思想Lean thinking