本術語表按拼音首字母順序對術語進行排序。
A
APK/AAB 包加固(Android)
對 APK/AAB 包,整體進行安全保護,提供 APK/AAB 包防反編譯保護、DEX 文件整體加殼保護、DEX 文件防篡改保護、防白盒攻擊、殼加密算法保護、防調試保護、防內存篡改保護、防 Hook 保護、防模擬器保護、APK/AAB 包防重打包保護、防內存 dump 保護。
B
表達式置換(H5)
對 JavaScript 中的二元表達式等轉換成等價函數調用形式,指的是 a + b 這類簡單表達式,替換成等價的復雜的表達式,比如 a + (-b),增大破解者分析難度。
C
常量加密(iOS)
常量加密功能支持對各種類型的數組型常量進行編譯期加密。其目的在于隱藏顯示字符串如 log 信息以降低信息泄漏風險,及隱藏靜態常量數組內容如 AES-SBOX 以提高通用算法靜態特征識別難度。
常量字符串加密(H5)
將字符串陣列化集中放置、并可進行加密存儲,使代碼中不出現明文字符串,避免被全局搜索字符串的方式定位到入口點。
D
代碼壓縮(H5)
去除 JavaScript 代碼中不必要的空格、換行等內容,或把一些可能公用的代碼進行處理實現共享,最后輸出的結果都壓縮為幾行內容,降低代碼可讀性。
調用圖混淆(iOS)
調用圖指函數間的交叉調用關系,是重要的程序宏觀結構描述指標。與過程內針對控制流圖的混淆技術相比,調用圖混淆模塊是一種模塊級的、函數間引用關系混淆技術。調用圖轉化模塊通過對源程序所有調用指令的轉化處理,可以從宏觀層面破壞源程序結構,消除源程序的模塊化設計特征。
對象鍵名(對象域名)替換(H5)
將對象的屬性名進行轉換,隱藏代碼之間的調用關系。
F
反格式化(H5)
強制將代碼以單行形式顯示,如果對代碼進行格式化或者重命名,該段代碼將無法執行。
分支偽造(iOS)
分支偽造模塊是安全編譯器內建的一個基于不透明謂詞的控制流混淆方法。結合控制流可達性分析結果及隨機不透明謂詞構造器,分支偽造模塊能以較低的成本(性能影響小,文件膨脹少)達到控制流改造的目的。
符號信息加密(iOS)
符號信息即編譯后二進制文件保留的函數名、全局變量名等。符號信息加密,即根據指定規則對指定的、符合特征的函數名、全局變量名等進行加密處理。
H
花指令及壞指令插入(iOS)
花指令指的是可執行但又能干擾分析的一些指令,壞指令指的是不可執行的非法指令。花指令及壞指令插入模塊用于對抗 IDA 等反匯編器、反編譯器的靜態指令流分析能力。基于控制流可達性分析結果,此模塊會在程序中隨機插入用于干擾分析的花指令和用于阻止分析的壞指令。
函數變量名混淆(H5)
將帶有含意的變量名、方法名、常量名隨機轉換為無意義的類亂碼字符串,降低代碼可讀性。
J
禁止控制臺輸出(H5)
禁止通過 console 輸出日志。
K
控制流平坦化(iOS)
控制流平坦化是一種過程內控制流處理技術,能夠打亂原有代碼執行流程及函數調用關系,使代碼邏輯變得混亂無序。旨在消除語義塊間的前驅后繼關系,提高算法理解成本。
安全編譯器內建多種平坦化實現,在處理目標程序時可自動選擇;同時安全編譯器改進了多處細節處理方法,對基于符號執行技術的控制流分析方法也具備較強的對抗能力。
控制流平坦化(H5)
打亂原有代碼執行流程及函數調用關系,使代碼邏輯變得混亂無序。
L
類安全加固(Android)
對 Java 代碼進行混淆,隱藏真實運行流程,防止 jadx-gui、jeb 工具的反編譯,使加固后的代碼難以被人工直接閱讀。
X
虛假控制流(H5)
隨機在代碼中插入無用的僵尸代碼、僵尸函數,進一步使代碼混亂。
虛擬化保護(VMP)(H5)
虛擬化保護(VMP)將源碼轉換為虛擬化指令,提供強勁的源碼保護,提升對抗靜態、動態分析的能力。
Z
指令替換(iOS)
指令替換模塊用于等價替換或展開原始代碼中的簡易二元運算,如四則運算、布爾運算等。替換后的計算過程與代碼原意相似度較低且十分繁瑣,違背開發人員直覺,難以抽象化理解。指令替換模塊內建了數十種替換規則,在混淆過程中隨機選用,保證了后端生成的機器指令的隨機性和多樣性。
指針加密(iOS)
指針加密模塊用于消除代碼段與數據段間的顯式引用關系。