zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    tailf,tail -f,tail -F区别
    Java多线程知识总结(一)
    MyBatis使用总结
    mina学习总结
    好书推荐
    Hessian总结
    Spring总结
    SpringMVC总结
    判断两个IP是否处于同一子网(网段)
    Delphi Json之树遍历
  • 原文地址:https://www.cnblogs.com/ydaq/p/13098062.html
Copyright © 2011-2022 走看看