前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >浅谈Android 混淆和加固

浅谈Android 混淆和加固

作者头像
听着music睡
发布于 2018-10-25 06:55:22
发布于 2018-10-25 06:55:22
5.9K10
代码可运行
举报
文章被收录于专栏:Android干货Android干货
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
混淆:
针对项目代码,代码混淆通常将代码中的各种元素(变量、函数、类名等)改为无意义的名字,使得阅读的人无法通过名称猜测其用途,增大反编译者的理解难度。
虽然代码混淆可以提高反编译的门槛,但是对开发者本身也增大了调试除错的难度。开发人员通常需要保留原始未混淆代码用于调试。
操作时机:项目打包时
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
加固:
针对apk,加固是多维度的安全防护方案,包括反破解、反逆向、防篡改等,可以防止应用被各类常见破解工具逆向,安全性要远大于单纯的代码混淆。
操作时机:项目打包成的apk文件

以上,混淆用于让apk被反编译后获取的代码难理解,加固用于让apk难于被反编译。两种操作都是对项目的安全措施,两个操作是不冲突的,可以选择其一,也可以两个操作都做。

--------------------------------------------------------------------------------------------

加固原理:

对App进行加固,可以有效防止移动应用被破解、盗版、二次打包、注入、反编译等,保障程序的安全性、稳定性。对于金融类App,尤其重要。

对App dex进行加固的基本步骤如下: 1. 从App原始apk文件里获取到原始dex文件 2. 对原始dex文件进行加密,并将加密后的dex文件和相关的存放到assert目录里 3. 用脱壳dex文件替换原始apk文件里的dex文件;脱壳dex文件的作用主要有两个,一个是解密加密后的dex文件;二是基于dexclassloader动态加载解密后的dex文件 4. 因为原始apk文件已经被修改,所以需要删除原始apk的签名信息,即删除META-INF目录下的.RSA、.SF 和MANIFEST.MF文件 5. 生成加固后的apk文件 6. 对加固后的apk文件进行签名,apk加固完成。

原理分析: 1.为什么要对原始dex进行加密,同时用脱壳dex文件替换原始dex文件?大部分的apk反编译工具(dex2jar、apktools、jui等)都是对dex文件进行反编译,将dex文件反编译成smail,然后再转化成class文件进行阅读和修改。用脱壳dex替换原始dex文件之后,用上面的反编译工具反编译apk文件,只能看到脱壳程序的class文件,看不到apk本身的class文件。对dex文件进行加密,这样即使第三方拿到了dex文件,以为无法解密,也就无法对其进行解析和分析。 2.怎么确保apk功能正常运行?加固后的apk启动之后,脱壳dex文件会对加密后的dex文件进行解密,然后机遇dexclassload动态加载解密后的dex文件。从用户的角度,加固前后App的功能和体验基本是一样的。

这个和插件化的原理是一样的。可以参见http://blog.csdn.net/jiangwei0910410003/article/details/48104581 3.dex加固主要是防止被静态反编译,进而获取源码并修改

加固工具:

1、腾讯加固

2、360加固

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
非常详细,学习了,点赞报毒 混淆的AndroidManifest.xml,还是会报哦!最后发现用 apk119.com 在线处理去报毒加固混淆很不错。感谢分享,学习了,还是有些懵逼,折腾了很久,太难了!最后找到 apk119.com 在线去报毒加固混淆,很不错。
非常详细,学习了,点赞报毒 混淆的AndroidManifest.xml,还是会报哦!最后发现用 apk119.com 在线处理去报毒加固混淆很不错。感谢分享,学习了,还是有些懵逼,折腾了很久,太难了!最后找到 apk119.com 在线去报毒加固混淆,很不错。
回复回复1举报
推荐阅读
编辑精选文章
换一批
Android逆向分析从入门到深入
学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因为Android移动性能实战这本书. 这本书里用hook技术hook一些关键函数来计算关键函数的调用参数和调用时长, 从而确定性能问题发生的位置和原因. 但目前没有比较系统的讲解hook的书籍, 所以就系统的了解下逆向分析.
望天
2019/09/26
4.4K0
Android逆向分析从入门到深入
Android逆向分析概述
学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因为Android移动性能实战这本书. 这本书里用hook技术hook一些关键函数来计算关键函数的调用参数和调用时长, 从而确定性能问题发生的位置和原因. 但目前没有比较系统的讲解hook的书籍, 所以就系统的了解下逆向分析.
望天
2018/08/02
1.4K0
Android逆向分析概述
浅谈安卓apk加固原理和实现
在安卓开发中,打包发布是开发的最后一个环节,apk是整个项目的源码和资源的结合体;对于懂点反编译原理的人可以轻松编译出apk的源码资源,并且可以修改资源代码、重新打包编译,轻轻松松变成自己的apk或者修改其中一部分窃取用户信息。
yuanyi928
2018/12/24
3.6K0
浅谈安卓apk加固原理和实现
面试题丨android面试问题合集
静态分析工具是指在不运行程序的情况下,通过对程序文件进行源代码分析,从而对程序的安全性、可靠性、性能等进行分析的工具。它可以识别出程序文件中的漏洞,但只能识别出程序文件中的静态漏洞,不能识别出程序在运行中可能出现的动态漏洞。比如apktool、androidkiller、jeb,GDA、smali、jadx等
极安御信安全研究院
2023/06/08
2.3K1
面试题丨android面试问题合集
Android逆向分析从入门到深入
学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因为Android移动性能实战这本书. 这本书里用hook技术hook一些关键函数来计算关键函数的调用参数和调用时长, 从而确定性能问题发生的位置和原因. 但目前没有比较系统的讲解hook的书籍, 所以就系统的了解下逆向分析.
用户7118204
2020/03/24
1.3K0
提高APP安全性的必备加固手段——深度解析代码混淆技术
iOSAPP 加固是优化 APK 安全性的一种方法,常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 iOSAPP 加固的具体实现方式。
iOS Magician
2023/11/17
4900
提高APP安全性的必备加固手段——深度解析代码混淆技术
Android SO加固技术及其破解方法探讨
本文将介绍Android应用中的native层(C/C++代码编译生成的.so文件)的SO加固方法,以及潜在的破解方式。SO加固旨在防止动态链接库(.so文件)被恶意分析、修改和破解。
陆业聪
2024/07/23
6040
Android SO加固技术及其破解方法探讨
爱加密企业版静态脱壳机编写
加壳时将方法指令抽走后自定义格式加密存放在assets/ijiami.ajm文件中,通过IDA动态调试分析发现每个被抽走的方法的debuginfo值改成0X3F开始的8字节大不的值,该值在还原时做为Map的KEY。
我是小三
2018/08/08
4.2K0
爱加密企业版静态脱壳机编写
写给小白的android基础面试笔试题(一)
序言:由于公司的某些方面原因,LZ最近都处于找工作的状态,年关了,最关键的LZ还只是个没毕业的孩子,所以工作越来越不好找了,到哪里投简历都是动不动就好几年经验,这让我们这些没经验的渣渣还怎么活啊!好了,也不吐槽那么多了,这几天到处去投简历,到处去面试,培训机构,外包公司这些都经历了个遍,总结了一下面试的时候的面试笔试题(如有错误,请及时纠正)
用户2802329
2018/08/07
9390
[1198]ApkScan-PKID 查壳工具
1、壳的功能:壳最本质的功能就是实现加载器,壳是指在一个程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务,深入点就是在apk外面再套一层壳,在运行的时候这层壳会把真正的apk的dalvik指令集释放出来,为apk加壳是目前主流的防护方案,真正的源码是隐藏在壳之下的,要想拿到源码研究其逻辑就要先想办法将壳脱掉,所以我们拿到一个apk要逆向的第一步就是用查壳工具看下这个apk文件是否加壳,以及加了什么壳,然后想办法把壳脱掉,拿到dex文件再去分析。
周小董
2023/10/10
6800
[1198]ApkScan-PKID 查壳工具
Notes|Android 客户端逆向基础知识分享
技术分享,一直都是让人比较无奈的事情。分享的东西对于不感兴趣的童鞋而言,简直枯燥无味,而对于大佬而言,又是关公面前耍大刀。
贺biubiu
2023/05/30
6590
Notes|Android 客户端逆向基础知识分享
把 Android App 逆向分为几步?三步
逆向在很多领域都有应用,比如如今爬虫技术已经遍地走,甚至不用写代码都可以爬取数据,导致前端开发的反爬意识也逐步提升。因此 JS、Android 等领域的逆向,已经成为爬虫开发者必备的技能之一。
咸鱼学Python
2019/09/05
2.8K0
把 Android App 逆向分为几步?三步
iOS加固原理与常见措施:保护移动应用程序安全的利器
随着移动应用的普及和用户对数据安全的关注度提高,iOS加固成为了很多开发者和企业的必备工具。那么,iOS加固是如何保护应用程序的安全性的呢? iOS加固是指对OS应用程序进行一系列的安全措施,以提高其抗逆向工程、反编译和破解的能力。下面将介绍iOS加固的原理和常见的加固措施。
iOS Magician
2023/11/09
4250
iOS加固原理与常见措施:保护移动应用程序安全的利器
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
iOS程序应用
2023/11/23
8540
一文了解安卓APP逆向分析与保护机制
3月17日,安卓巴士全球开发者论坛在重庆举办,网易资深安全工程师钟亚平出席交流活动,并做《安卓APP逆向与保护》的演讲。在分享中,他介绍了 Android App常见保护方法及其对应的逆向分析方法,以及分析了常见的加固方案原理与对抗方法。
FB客服
2018/07/30
1.6K0
一文了解安卓APP逆向分析与保护机制
android逆向学习路线
就我自己从事安卓逆向这几年的经验来说,对没有编程基础的朋友如何学习安卓逆向最好制定以下学习路线:
bosh123
2020/09/06
2.6K0
android 壳特征
类加载技术: 针对apk中的classes.dex文件进行处理,放入待定的文件中,通过native代码来进行对其运行时解密。
tea9
2022/09/08
1.2K0
android 壳特征
Android 逆向工具篇—反编译工具的选择与使用
在过去,当我们想要了解一个 app 内部运作细节时,往往先通过 ApkTool 反编译 APK,生成 smali 格式的反汇编代码[1],然后大佬和老手直接阅读 smali 代码,适当的进行修改、插桩、调试,经过一定的经验和猜想,理解程序的运行逻辑和加解密细节,比如如下的 smali 代码。
Python编程与实战
2019/12/04
27.1K1
APK加固之静态脱壳机编写入门
1.大家都知道Android中的程序反编译比较简单,辛苦开发出一个APK轻易被人反编译了,所以现在就有很多APK加固的第三方平台,比如爱加密和梆梆加固等。
我是小三
2018/08/08
2.1K0
APK加固之静态脱壳机编写入门
app逆向入门分析——破解某APP登陆请求参数
前段时间做爬虫遇到一个app,里面的数据需要登录之后才能拿到,而且登录不能用密码,只能通过验证码登录。 这不是明摆着欺负人么,按赵四哥那句话来说就是:
Python编程与实战
2019/12/03
2.4K0
相关推荐
Android逆向分析从入门到深入
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验