老铁们,大家好,相信还有很多朋友对于探索Android:全面解析移动操作系统的奥秘和的相关问题不太懂,没关系,今天就由我来为大家分享分享探索Android:全面解析移动操作系统的奥秘以及的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
APK解压后的文件目录结构
asset:存放资源文件的目录
lib:存放ndk生成的so文件
META-INF:存储签名信息的目录
res:资源文件存放目录
AndroidManifest:Manifest文件,存储描述应用程序的名称、版本、权限、注册的服务等信息。
classes.dex:Java源代码编译后生成的Dalvik字节码文件,是Dalvik虚拟机上运行的主要代码部分。可能有多个这种类型的文件。
resources.arsc:编译好的二进制资源索引文件(通过resources.arsc可以准确找到对应的资源文件)。
文件加固一般分为保护java源代码的.dex文件加固和防止so泄露的so文件加固。
.dex 文件强化:
强化基本理念:
原apk文件解压后包含几个文件和几个.dex文件。
我们需要一个shell dex文件。 shell dex文件的应用方法具有解密和恢复功能代码。
我们有2种包装方式:
(1)随着对dex文件的深入了解,我们将所有原始dex加密并拼接到shell dex文件中,并记录位置,以便我们知道从哪里开始获取我们源dex文件的内容。只有shell dex文件的有效内容才能被破译。 (最终只有一个dex文件内容=shell dex文件+加密后的dex文件内容)。
(2)我们将原来的dex文件全部加密,重写为dex文件。命名不应与shell dex 文件冲突。比如我们重命名为class_jiami1.dex,就和这个方法类似。只能解密shell dex文件,所有加密的dex文件都不会被识别和解密。 (最后只有一个能识别的dex文件,还有几个无法识别的特殊命名的dex文件。)
无论采用哪种方式打包,我们都会将apk的新dex文件和其他文件重新打包,生成新的apk。
对新的apk进行重新签名,生成可安装的apk。
运行解包idea :
运行apk,会加载apk中dex文件的应用方法。该应用程序有两个关键方法:attachBaseContext 和onCreate。首先运行attachBaseContext,然后运行onCreate。
attachBaseContext 我们的dex解密和重载程序就是在这个方法内执行的。由于装箱方式不同,拆箱方式也不同。
(1)通过dex文件中记录的文件大小值,我们可以读取len(.dex文件)-len(记录的文件大小值),即这个size之后的数据就是我们原来的dex文件的加密内容拼接进去的。我们解密数据内容并保存到资源目录下(一般是apk的data私有目录下我们自己指定的目录),然后参考热修复的方法,我们反映或者自定义ClassLoader来加载这些dex文件。
(2)直接通过解密算法解密其他特殊命名的dex文件,然后参考热修复方法反映或自定义ClassLoader来加载这些dex文件。
【探索Android:全面解析移动操作系统的奥秘】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
真的很好用啊,我的手机就用的 Android!
有17位网友表示赞同!
Android 手机的选择多太多了,可以根据个人喜好找到合适的一款。
有13位网友表示赞同!
更新比较慢是 Android 的一个缺点吧,有时候新功能得等很久才能体验到。
有6位网友表示赞同!
安卓系统感觉更自由一些,可以随意自定义手机界面。
有19位网友表示赞同!
用Android手机玩游戏真的还是挺流畅的!
有10位网友表示赞同!
很多软件都先在 Android 平台上发布,所以 安卓应用相对来说比较丰富一点。
有20位网友表示赞同!
Android 手机价格比较亲民,性价比高,很多人都喜欢这个特性。
有16位网友表示赞同!
谷歌服务和谷歌应用确实很方便,使用 Android 就更加贴近谷歌生态系统了。
有15位网友表示赞同!
最近想换个新手机,还在犹豫要用 Android 还是 iOS 。
有8位网友表示赞同!
我对Android的流畅体验感到满意!
有12位网友表示赞同!
Android 手机配件的选择也很多,可以根据个人需求找到合适的配件。
有9位网友表示赞同!
对于开发者来说,Android 平台开发也是非常灵活的选择。
有7位网友表示赞同!
我觉得 Android 系统比以前更稳定了。
有14位网友表示赞同!
希望未来 Android 可以继续改进,做得更好!
有20位网友表示赞同!
Android 手机的界面设计也越来越出色了。
有17位网友表示赞同!
在很多情况下,Android 手机的功能会更全面一些。
有17位网友表示赞同!
对于新手用户来说,Android 可能会需要一些时间来适应系统的操作。
有17位网友表示赞同!
Android 系统的安全性能一直都是大家关注的热点话题,希望可以做得更好。
有18位网友表示赞同!
Android 手机的功能更新迭代速度很快啊!
有14位网友表示赞同!
Android 的开源特性也为手机爱好者提供了很多便利!
有9位网友表示赞同!