透過您的圖書館登入
IP:3.137.159.3
  • 學位論文

利用圖媒合達成APK原始碼反混淆

Deobfuscating APK with Graph Matchmaking

指導教授 : 李允中

摘要


由於程式碼在經過編譯成為位元組碼後,能夠透過反編譯取得其程式碼,應用 程式為了保護其程式碼,在編譯時會使用程式碼混淆,透過改變使用者自定義的 名稱,降低其可讀性。在本研究中,我們主要透過以下3個步驟來解決代碼混淆的 問題: 1. 將每個程式轉換為對應的圖形,2. 從未被混淆的圖中收集子圖以形成模 式,並作為計算圖形相似度的基礎,3. 比較圖的相似度以獲得未知節點最有可能 的名稱。 我們也透過現有的CRF模型評估我們提出的方法的效益,並且透過假設檢定來 驗證我們提出的方法在預測實體類型的準確率優於CRF模型。

並列摘要


Java source code can be obtained by decompiling its bytecode, therefore, obfuscation by modifying the names of packages, classes, and methods is usually adopted as a means to reduce the readability to protect the source code. In this research work, we address the obfuscation through the following three steps: 1. transform Java programs into their corresponding graphs, 2. collect sub-graphs from the graphs of non-obfuscated programs to form patterns as a basis for similarity calculation, and 3. compare the similarity of graphs to obtain a most probable name for the unknown node. An experiment is also conducted to evaluate the benefit of our proposed approach with the extant CRF approach to show that our proposed approach is statistically more significant in improving the precision of predicting entity type than the extant CRF approach.

參考文獻


[1] Celery. http://www.celeryproject.org/.
[2] Deguard. http://apk-deguard.com/.
[3] Github api. https://developer.github.com/v3/.
[4] Nice2predict. https://github.com/eth-srl/Nice2Predict.
[5] B. Bichsel, V. Raychev, P. Tsankov, and M. Vechev. Statistical deobfuscation of android applications. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pages 343–355. ACM, 2016.

延伸閱讀