本術語表按拼音首字母順序對術語進行排序。
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)
指標加密模組用於消除程式碼片段與資料區段間的顯式參考關聯性。