Java代碼加密,Java加密方式,Java加密使用說明

概述

Java2C針對DEX文件進行加密保護,將DEX文件中標記的Java代碼翻譯爲C代碼,編譯成加固後的SO文件。默認情況只加密activity中的onCreate函數,如果開發者想加密其它類和方法,只需對相關類或函數添加標記代碼,在APK加密時會自動對標記的代碼進行加密處理【或者找幾維的技術支持人員在後臺添加Java函數白名單策略來對重要的函數進行加密】。

使用步驟

1.定義Annotation

在Android工程項目中,定義一個名爲LDPProtect的Annotation,如以下截圖

2.對類進行加密

在需要加密的類前面添加@LDPProtect,即可對類中除構造函數之外的其它函數進行安全加固,如下圖:

3.對函數進行加密

在需要加密的函數前面添加@LDPProtect,即可對該函數進行安全加固,如下圖:

4.編譯項目,加密APK

A.編譯項目生成release版本的APK文件

B.用正式簽名文件對APK包進行簽名

C.提交APK包到幾維安全開發者平臺進行安全加固

D.下載加密包並再次簽名

E.安裝使用

加密效果

1.類加密效果

原始Java代碼截圖

利用apktool反編譯apk查看smali代碼,因不加密構造函數,所以構造函數的smali代碼和原始smali代碼一樣,而ktest1、ktest2方法已被加密轉換,其smali代碼已不包含原始業務邏輯。

通過IDA分析SO文件,可以找到對應的函數列表

通過IDA進一步分析Java_cc_jnidemo_com_jnidemo_KwTest_ktest1這個函數,可以發現Java層的代碼已經成功轉化C代碼。此處爲了更直觀的展示效果,並未做混淆保護,在實際加密中,可進一步結合Native層的代碼混淆和虛擬化技術,達到高強度的安全保護。轉化後的C代碼截圖如下:

2.函數加密效果

原始Java代碼截圖

利用apktool反編譯後的smali代碼截圖

通過IDA分析SO文件,可以找到對應的函數列表,轉化後的C代碼可參考類加密效果

友情告知地址,Java代碼加密,Java加密方式:https://www.kiwisec.com/product/java2c.html

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章