好久没写博客了,因为一时的懒惰又忘了更新,今天就来说说安卓的apk的编译和打包的过程 第一步apk的打包是先将资源文件和清单文件编译 第二步是将src中的.java和gen中的.java编译成多个.class文件,再将所有的.class文件编译打包成dvm可以运行的.dex文件 虽然在各位大神面前看 ...
分类:
移动开发 时间:
2016-07-20 21:29:40
阅读次数:
166
整个文件的布局
文件头
索引区
string_ids
type_ids
proto_ids
field_ids
method_ids
数据区
class_def
class_data_item
code_item
data
附录
测试用的Dex的java代码
参考资料
整个文件的布局整个Dex文件可以分成三部分,文件头、索引区、数据区,如下图所示。 文件头
记录Dex文件的概览、包含文件大小、校验...
分类:
其他好文 时间:
2016-07-17 00:04:40
阅读次数:
297
# 本demo实现原理来自 https://github.com/dodola/HotFix https://zhuanlan.zhihu.com/p/20308548 # Anti类功能,及其原理 如上图,A,B,C是三个class,它们在生成apk文件时,被打包入同一个dex文件中,当apk发布 ...
分类:
移动开发 时间:
2016-07-06 17:52:19
阅读次数:
303
一、前言最近在弄脱壳的时候发现有些加固平台的加固方式是修改了dex文件结构,然后在加载dex到内存的时候,在进行dex格式修复,从而达到了apk保护的效果,那么在dex加载到内存的时候,如何进行dex格式的修复呢?其实原理就是基于运行时修改内存中的Dalvik数据,本文就来用一个简单的例子来介绍一下如何在内存中去修改Dalvik指令代码来改变代码本生的运行逻辑。在讲解本文之前,一定要先看这篇文章:...
分类:
移动开发 时间:
2016-07-02 14:33:56
阅读次数:
345
注:以下4篇博文中,部分图片引用自DexHunter作者zyqqyz在slide.pptx中的图片,版本归原作者所有; 0x01 背景介绍 安卓 APP 的保护一般分为下列几个方面: JAVA/C代码混淆 dex文件加壳 .so文件加壳 反动态调试技术 其中混淆和加壳是为了防止对应用的静态分析;代码 ...
分类:
移动开发 时间:
2016-06-27 19:56:22
阅读次数:
482
最近在看dex文件格式,看的是飞虫大大的android软件安全与逆向分析一书,写的条理很清晰。相对于elf文件来说,dex文件格式简单了很多,但是提到某个字段,仍然难以想象其所处位置。所以一直想用思维导图把dex文件格式画下来。因近来事务较多,未来得及画,偶然在某qq群见到此图,兴奋之至,特与大家分 ...
分类:
其他好文 时间:
2016-06-24 10:45:14
阅读次数:
268
SO库Linux系统下的动态库文件,就像win系统下的dll文件一样。将APK,改成RAR,在Lib目录下.dex(classes.dex)Dex是Android系统中可以在Dalvik虚拟机上直接运行的文件格式。java源代码经过ADT的复杂编译后转换成Dex文件,这是一个逐步优化的过程。Dex文 ...
分类:
移动开发 时间:
2016-06-02 19:47:11
阅读次数:
606
用压缩工具提取得到class.dex文件 把dex文件复制到工具的根目录,直接用鼠标拖拽得到jar文件 得到jar文件后,打开就行。 ...
分类:
其他好文 时间:
2016-05-23 19:11:10
阅读次数:
136
目前在安全加固与脱壳破解的攻防中,破解者处在了优势的位置,个人认为在虚拟机保护出现之前,也会一直这样。 对于Android DEX文件的脱壳,一般分2种情况: 一种是dex会完整出现在内存当中,大部分免费版加固,某些企业版加固都是这样的,通常IDA调试断在dvmDexFileOpenPartial、 ...
分类:
其他好文 时间:
2016-05-20 00:46:28
阅读次数:
1308
许多安卓代码不都是见得人的,我们都懂! 像稍微高大上点的广告植入。但为了让用户手机上面装有的杀毒软件不检测出广告, 我们就需要采取以下非正常的手段,如下: 在编写安卓应用代码时候,我们会就所有的代码都放在src目录下,但是在打包安卓程序的时候,这些代码将会编译成一个dex文件, 这个杀毒软件就会查找 ...
分类:
移动开发 时间:
2016-04-25 19:22:22
阅读次数:
210