- 博客(11)
- 资源 (13)
- 收藏
- 关注
原创 Android Apk加壳原理分析
0x00 阅读本文前,建议读者首先阅读Android加壳原理,参考文章Android中的Apk的加固(加壳)原理解析和实现。如果没有看过这篇文章,本文理解起来比较困难。 0x01 下面我们来分析脱壳代码为什么要这样写,核心脱壳代码在ProxyApplication类里面,首先执行成员方法attachBaseContext,然后执行成员方法onCreate。 那么attach
2016-01-19 17:43:19 7939 8
原创 Android安全之旅系列博客导读
总结下近一年的学习经历,以中国的新年为节点。时间从2015年年后到今天,2015年年末。 1、重新学习了一遍《Linux内核源代码情景分析上下册》,毛德操著,并记录学习历程,写下了博客。 2、重新学习了一遍《Android系统源代码情景分析》,罗升阳著,并记录从开机启动到Home界面的展示整个流程。 3、学习了一个小型java虚拟机的源代码,并调试修改源代码中的错误,最后可以运行
2016-01-17 12:41:29 2897 6
原创 IDA动态调试Android的DEX文件
0x00 我们以阿里比赛第一题为例,来动态调试dex文件。参考IDA动态调试Android的DEX文件一文,首先AndroidManifest.xml里面android:debuggable="true"。 0x01 下面详细说步骤。 1、将classes.dex拖入IDA中。 2、选择Debugger->Debugger options->Set specific
2016-01-28 14:44:26 7810 2
原创 Android native反调试方式及使用IDA绕过反调试
0x00 为了避免我们的so文件被动态分析,我们通常在so中加入一些反调试代码,常见的Android native反调试方法有以下几种。 1、直接调用ptrace(PTRACE_TRACEME, 0, 0, 0),参考Android Native反调试。 2、根据上面说的/proc/$pid/status中TracerPid行显示调试程序的pid的原理, 可以写一个方法检查
2016-01-28 11:36:49 18935 7
原创 ida动态调试so,在init_array和JNI_ONLOAD处下断点
0x00 如何在JNI_ONLOAD下断点,参考安卓逆向学习笔记(5) - 在JNI_Onload 函数处下断点避开针对IDA Pro的反调试。最好使用模拟器调试,确保 Attach to process后,对应进程在DDMS中出现小红蜘蛛。 下面将如何在init_array下断点,首先要找到so的init_array端,把so拖入ida,然后按Crtl+s,会出现该so的所有段。如下
2016-01-28 09:55:26 6999 1
原创 DexHunter脱壳神器分析
0x00 这篇文章我们分析Android脱壳神器DexHunter的源代码。DexHunter作者也写了一篇介绍它的文章从Android运行时出发,打造我们的脱壳神器。DexHunter源代码位于https://github.com/zyq8709/DexHunter。 0x01 DexHunter 实现中,只需要修改一处文件:dalvik\vm\native\dalvik_sy
2016-01-26 18:25:57 10389 7
原创 DexClassLoader和PathClassLoader类加载机制
0x00 在DexClassLoader和PathClassLoader加载Dex流程一文中,我们分析了dex文件如何形成了DexFile结构体。本文中讲解类加载机制,实际上就是生成ClassObject对象。 我们以DexClassLoader为例,讲解类加载机制,PathClassLoader是一样的。 我们在加载类时通常会调用loadClass,那么我们就从loadClas
2016-01-21 20:29:55 3738
原创 DexClassLoader和PathClassLoader加载Dex流程
0x00 在上一篇文章apk安装和优化原理,在最后我们分析了DexClassLoader和PathClassLoader的构造函数的不同。 PathClassLoader最后调用的是new DexFile(pathFile),而DexClassLoader调用的是DexFile.loadDex(dexPathList[i], outputName, 0)。 0x01
2016-01-21 12:52:05 8215 1
原创 apk安装和优化原理
0x00 apk安装的方式有: 1、开机启动时安装 2、通过adb install 或者在手机中点击apk,进行界面安装。 0x01 开机启动后在system_server中调用PackageManagerService.main,随着调用的深入,循环对每个apk都调用scanPackageLI方法,这个函数提取apk的AndroidManifest.xml里面的内容
2016-01-20 20:25:58 3995
原创 Android加壳native实现
本例仅在Android2.3虚拟机跑通过,如果要适配其他机型,请自行研究,这里只是抛砖引玉。 0x00 在Android中的Apk的加固(加壳)原理解析和实现,一文中脱壳代码都写在了java层很容易被识别出来,很多需求需要把脱壳的程序转移到native层,其实转移的思路也很简单,就是在native层通过JNI调用Java层代码。 0x01 public class Prox
2016-01-19 19:50:21 3852 2
压缩SDK demo
2014-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人