热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

对android的apk包加密

自行线下加密apk包,加

正文从编号开始

注:QQ群号 296733909

(背景介绍之类的跳过就好啦)开发android应用肯定免不了需要写java代码,然而用java写的应用并不安全,可以用android逆向助手之类的工具,很容易的反编译apk包,查看到该apk包的源代码,于是便有了混淆工具来混淆java代码。即便是混淆了,也不安全,混淆使你的代码变得难懂,但终究还是能读懂,而且混淆并不是那么容易的事,还要写文件来保证哪些需要混淆,哪些不需要混淆。

通过了解android的一些原理,可以知道安卓打包以后会生成一个classes.dex文件,而反编译工具反编译的就是此文件.于是只要把该文件加密即可。

爱加密是个不错的网站,把apk包传上去,他们会帮你加密apk包,等个1分钟到5天左右,如果通过了安全检测,就帮你加密好了,然后你下载下来,用反编译工具反编译之,你会发现原来的dex文件没有了,而在assets目录下多了一个ijiami,dat文件,此文件其实就是被加密过的dex。

然而你把包上传了,你总会担心些什么,是吧。而且加密所需时间不定,晚上传的包可能第二天才能看到结果,周末传的包可能周一才能看到结果。而且还要对你上传的包做安全检测,万一你的包。。。嗯,所以我们自己来加密吧。

(正文来啦)

我自己写了一个加密方法来加密dex文件,一起来试试看吧。


加密所需要的工具在百度网盘,地址:http://pan.baidu.com/s/1eQzssKE

1.运行你自己的项目,将bin目录下的生成的classes.dex复制到该文件夹下的tool目录下(当然你也可以解压apk包,取出class.dex文件拿来用)
2.右键编辑first.bat,修改dx命令所在的目录,dx命令在android-sdk\build-tools\x.x.x\下(照着我的路径改自己的路径就好了)
3.首先运行first.bat,会生成一个dex.jar
4.然后运行second.bat,会生成一个_rf.dat文件
5.打开eclipse,导入该文件夹下的androidEn项目(该项目为我测试通过的项目,里面的dex已加密,可以运行下看效果)
6.替换assets,res目录和AnroidMainfest.xml文件为你自己项目里的文件,合并libs文件夹,删除原项目的jar引用包
7.把刚才生成的_rf.dat文件放到assets目录下面
8.修改AnroidMainfest.xml文件,修改后如下:


...
     
                
        
		
        
    
	...
9.运行项目,在手机上查看效果
10.若对以上步骤有疑问,或者项目无法运行、亦或想知道具体原理,可以加QQ群(群号296733909),询问相关人员,获取加密的源码自行研究。

原理简述:利用dexclassloader加载dex文件。用C或C++写dex文件的加密解密,利用jni,在C,C++代码里写dexclassloader的加载和运行,其中还涉及到反射问题等,想知道详细思路可以加群(296733909)讨论。

百度关键字:dexclassloader,jni

(觉得不错的话,欢迎转载哦!!转载请注明出处就好啦!

对android的apk包加密


推荐阅读
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
  • 本文旨在提供一套高效的面试方法,帮助企业在短时间内找到合适的产品经理。虽然观点较为直接,但其方法已被实践证明有效,尤其适用于初创公司和新项目的需求。 ... [详细]
  • 本文探讨了使用C#在SQL Server和Access数据库中批量插入多条数据的性能差异。通过具体代码示例,详细分析了两种数据库的执行效率,并提供了优化建议。 ... [详细]
  • 如何将本地Docker镜像推送到阿里云容器镜像服务
    本文详细介绍将本地Docker镜像上传至阿里云容器镜像服务的步骤,包括登录、查看镜像列表、推送镜像以及确认上传结果。通过本文,您将掌握如何高效地管理Docker镜像并将其存储在阿里云的镜像仓库中。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • Hybrid 应用的后台接口与管理界面优化
    本文探讨了如何通过优化 Hybrid 应用的后台接口和管理界面,提升用户体验。特别是在首次加载 H5 页面时,为了减少用户等待时间和流量消耗,介绍了离线资源包的管理和分发机制。 ... [详细]
  • 获取Jedis和Commons Pool JAR包的两种方法及详细步骤
    本文介绍如何通过网盘链接或官方网站获取Jedis和Commons Pool的JAR包,并提供详细的图文教程。同时,还附有导入JAR包到项目的相关建议。 ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • 查找最小值的操作是很简单的,只需要从根节点递归的遍历到左子树节点即可。当遍历到节点的左孩子为NULL时,则这个节点就是树的最小值。上面的树中,从根节点20开始,递归遍历左子 ... [详细]
  • 在使用STM32Cube进行定时器配置时,有时会遇到延时不准的问题。本文探讨了可能导致延时不准确的原因,并提供了解决方法和预防措施。 ... [详细]
  • 深入理解Lucene搜索机制
    本文旨在帮助读者全面掌握Lucene搜索的编写步骤、核心API及其应用。通过详细解析Lucene的基本查询和查询解析器的使用方法,结合架构图和代码示例,带领读者深入了解Lucene搜索的工作流程。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
author-avatar
腾云溪牛_556
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有