亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

標簽:
Java

概述

Java2C针对DEX文件进行加密保护,将DEX文件中标记的Java代码翻译为C代码,编译成加固后的SO文件。默认情况只加密activity中的onCreate函数,如果开发者想加密其它类和方法,只需对相关类或函数添加标记代码,在APK加密时会自动对标记的代码进行加密处理【或者找几维的技术支持人员在后台添加Java函数白名单策略来对重要的函数进行加密】。

使用步骤

1.定义Annotation

在Android工程项目中,定义一个名为LDPProtect的Annotation,如以下截图

 https://img1.sycdn.imooc.com/5ef1c7360001e18105420242.jpg

https://img1.sycdn.imooc.com/5ef1c76b00019aff05420194.jpg

2.对类进行加密

在需要加密的类前面添加@LDPProtect,即可对类中除构造函数之外的其它函数进行安全加固,如下图:

 https://img3.sycdn.imooc.com/5ef1c77f0001174705420143.jpg

3.对函数进行加密

在需要加密的函数前面添加@LDPProtect,即可对该函数进行安全加固,如下图:

 https://img1.sycdn.imooc.com/5ef1c78e0001686a05420084.jpg

4.编译项目,加密APK

A.编译项目生成release版本的APK文件

B.用正式签名文件对APK包进行签名

C.提交APK包到几维安全开发者平台进行安全加固

D.下载加密包并再次签名

E.安装使用

加密效果

1.类加密效果

原始Java代码截图

 https://img4.sycdn.imooc.com/5ef1c79e0001f62605000408.jpg

利用apktool反编译apk查看smali代码,因不加密构造函数,所以构造函数的smali代码和原始smali代码一样,而ktest1、ktest2方法已被加密转换,其smali代码已不包含原始业务逻辑。

 https://img1.sycdn.imooc.com/5ef1c7ad0001bac205000470.jpg

通过IDA分析SO文件,可以找到对应的函数列表

 https://img1.sycdn.imooc.com/5ef1c7bb0001bc5605000068.jpg

通过IDA进一步分析Java_cc_jnidemo_com_jnidemo_KwTest_ktest1这个函数,可以发现Java层的代码已经成功转化C代码。此处为了更直观的展示效果,并未做混淆保护,在实际加密中,可进一步结合Native层的代码混淆和虚拟化技术,达到高强度的安全保护。转化后的C代码截图如下:

 https://img4.sycdn.imooc.com/5ef1c7ca0001ede905000407.jpg

2.函数加密效果

原始Java代码截图

 https://img4.sycdn.imooc.com/5ef1c7db0001859005000397.jpg

利用apktool反编译后的smali代码截图

 https://img3.sycdn.imooc.com/5ef1c7e800014cb705000404.jpg

通过IDA分析SO文件,可以找到对应的函数列表,转化后的C代码可参考类加密效果

 https://img2.sycdn.imooc.com/5ef1c7f60001691405000045.jpg


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消