概述

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

Java代码加密,Java加密方式,Java加密使用说明相关推荐

  1. 上传图片的表单java代码_java模拟post方式提交表单实现图片上传(示例代码)

    转自:http://blog.csdn.net/5iasp/article/details/8669644 模拟表单html如下: java代码如下: [java] view plain copy p ...

  2. matlab中调用java代码_Matlab中调用第三方Java代码

    在Java中采用Matlab JA Builder可以实现调用m文件,采用这样的方式,可在Matlab的M文件中,直接调用Java类.这种方式可以表示为Java--> Matlab( m, Ja ...

  3. java 代码执行el,专属于java的漏洞——EL表达式注入

    前言"FSRC经验分享"系列文章,旨在分享焦点科技信息安全部工作过程中的经验总结,包括但不限于漏洞分析.运营技巧.sdl推行.等保合规.自研工具等等. 欢迎各位安全从业者持续关注~ ...

  4. rose 生成java代码_Rational Rose双向工程java代码生成与图生成

    OSE思想是复杂的,内涵是丰富的,操作是别扭的,文档是简单的,人性是没有的.然而人们对它趋之若鹜的原因恐怕是我们现在的TEAMLEADER,SA受RUP的'毒害'颇深的原因,而这也将影响到徒弟–将来的 ...

  5. Java连接mysql数据库的方式,java连接mysql数据库的方式(4句语句)

    1 加载mysql驱动: class.forName("con.mysql.jdbc.Driver").newInstance(); 2 根据数据库路径url,账号,密码进行数据库 ...

  6. java代码初体验_第一次Java 8体验

    java代码初体验 像世界其他地方一样,我深深地爱上了Slack. 为什么? 原因很多,但主要的原因是它提供了一种围绕通讯而非工具真正构建SDLC流程的新方法. 您认为这些天哪个更常见,杂乱无章的机智 ...

  7. java 代码解析工具_改善 Java 代码质量的工具与方法

    原标题:改善 Java 代码质量的工具与方法 我们可能见过上面的有关代码质量的图片,究竟如何衡量一段代码好坏? 代码质量是什么?为什么它很重要? 作家通过他的著作来讲述了一个清晰的.令人信服的故事.他 ...

  8. 最牛逼的java代码_分享史上java最牛逼,最简短的代码

    确实是12306的最核心代码呀 alert("当前访问用户过多,请稍后重试!"); 确实牛 public class Test{ static{ System.out.printl ...

  9. 最牛逼的java代码_分享史上java最牛逼 最简短的代码-Go语言中文社区

    也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 确实是12306的最核心代码呀 确实牛public class Test{    static{       System.ou ...

  10. oracle是java代码块,Oracle中施行java代码

    Oracle中执行java代码 1.在ORACLE数据库中创建功能类(实现签名): create or replace and compile java source named TestName a ...

最新文章

  1. redis之 centos 6.7 下安装 redis-3.2.5
  2. 剑灵总显示服务器断开连接,求解一分钟“与服务器断开连接”问题
  3. 用八块腹肌调戏智能屏是一种什么体验?
  4. Django 之母板
  5. mariadb数据库备份与恢复
  6. 品牌到底要不要做全渠道?且听他们怎么说……
  7. 60.Java 代码编译和执行的整个过程
  8. 【渝粤题库】广东开放大学 传播学理论与实务 形成性考核
  9. document.cookie 获取不到_意想不到,王者荣耀中不用花钱就可以获得的皮肤有哪
  10. python怎么做软件程序_Revit二次开发python怎么做?人工智能python语言在BIM软件高效建模的运用尝试...
  11. 吴恩达机器学习学习笔记第二章:单变量线性回归
  12. Requirements Analysis with 'pseud-Formal' Method
  13. VK1640兼用TM1640
  14. 【学习目录】支持向量机原理网络资料整理
  15. 使用Python 去除kg视频水印代码
  16. 计算机组成原理——存储器系统
  17. 三、REPL(交互式解释器)
  18. 文件系统 fsck和e2fsck使用-小白实操记录
  19. Lyx的安装流程(windows10系统)及配置中文环境
  20. 微波射频学习笔记17-------LC谐振的验证和LC滤波器原理

热门文章

  1. 知识点 —— Python进阶-3
  2. 人的记忆像筛子,而忘却是一种智慧
  3. 什么叫取反_取反位什么意思_c语言按位取反什么意思
  4. 解决360断网急诊强力修复后无法上网的问题
  5. 网聊记录-看看他的口才
  6. 六大布局之RelativeLayout
  7. 李宏毅老师2022机器学习课程笔记 01 Introduction of Deep Learning
  8. 马未都:人的一生,都是有命数的
  9. Android之SQLite数据库的使用
  10. 关于数据库的表如何删除空行