热门标签 | 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包加密


推荐阅读
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 在开发板的启动选项中看到如下两行:7:LoadBootLoadercodethenwritetoFlashviaSerial.9:LoadBootLoadercodethenwri ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 在日常生活中,支付宝已成为不可或缺的支付工具之一。本文将详细介绍如何通过支付宝实现免费提现,帮助用户更好地管理个人财务,避免不必要的手续费支出。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • http:blog.csdn.netzeo112140articledetails7675195使用TCPdump工具,抓TCP数据包。将数据包上传到PC,通过Wireshark查 ... [详细]
  • 在 Android 开发中,`android:exported` 属性用于控制组件(如 Activity、Service、BroadcastReceiver 和 ContentProvider)是否可以被其他应用组件访问或与其交互。若将此属性设为 `true`,则允许外部应用调用或与之交互;反之,若设为 `false`,则仅限于同一应用内的组件进行访问。这一属性对于确保应用的安全性和隐私保护至关重要。 ... [详细]
  • 卓盟科技:动态资源加载技术的兼容性优化与升级 | Android 开发者案例分享
    随着游戏内容日益复杂,资源加载过程已不仅仅是简单的进度显示,而是连接玩家与开发者的桥梁。玩家对快速加载的需求越来越高,这意味着开发者需要不断优化和提升动态资源加载技术的兼容性和性能。卓盟科技通过一系列的技术创新,不仅提高了加载速度,还确保了不同设备和系统的兼容性,为用户提供更加流畅的游戏体验。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 在 Android Studio 中创建新项目时 Flutter 未显示的解决方法
    在 Android Studio 中创建新项目时,如果 Flutter 选项未显示,可以通过检查 Flutter 插件安装情况、配置 Flutter SDK 路径以及重启 IDE 等方法来解决。此外,加入 Go 语言社区和 Golang 程序员人脉圈也有助于获取更多技术支持和经验分享。 ... [详细]
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社区 版权所有