首页
社区
课程
招聘
[原创]从对XX加固免费版的逆向分析学习Android so的动态调试
发表于: 2019-8-22 21:45 9022

[原创]从对XX加固免费版的逆向分析学习Android so的动态调试

2019-8-22 21:45
9022

概述:

       最近的工作中开始接触Android逆向相关的知识,但接触的更多是友商的加密和反调试逻辑很少接触脱壳,在此之前只接触过数字家的壳,也脱了好久了,所以这次找个免费版的加密壳练习下脱壳。

用到的工具:jadx-gui、ida pro、unicorn

样本:2019-08-10加密的自开发的demo

新手刚开始接触逆向,如果分析有不足或改进之处还请各位提出,提前感谢各位~

一、分享些小窍门

       1.Android so绝大部分是C语言实现的,在绝大多数C编译器实现的函数调用中通过BL*指令(返回地址放入LR中)进行跳转,函数入参翻入R0-R3寄存器中如果入参数量多于4个则把入参放入栈中

       2.在反调试中so在判定有调试器或hook工具后大多数会选择直接退出所属进程,常见的方式有两种一种是raise(9)这种方式与kill -9 <pid>的方式相同,另一种exit(0),当你在调试so时发现进程无故退出了.可以考虑在这两个函数的入口处下断点,然后通过LR找到上下文

二、首先出张分析结果的流程图(概况)

如果你已经对我们今天的对象特别了解了那请看下我整理的流程图,如果发现哪里与你的印象不同欢迎讨论:

  

三、分享上手分析过程

首先查看Manifest.xml

  

Manifest没被改太多只修改了Application我们看一下它

  

还挺明显的,后面我们来看一下其他类吧,主要是Helper有一些配置信息和native方法,DexInstall类如其名

  

所以主要还是要处理动态链接库果断连上IDA pro因为我是Android 6.0手机,还自己编译了内核来过反调试,所以先openMemory下断点,啥?脱出来了...好尴尬..我们来分析下它的行为吧。

首先看下各个函数,应该做了些基于switch的流程控制不过没关系,我们先头铁的分析下

  

首先确定没有init.array 和init所以我们再Jni_Onload下断点在openMemory等系统函数下断点然后执行.我这边借一个小例子解释下开头的分享1:

看一个函数调用


  

我们长话短说想看具体流程请去看开头的流程图我下面只分享些重要的代码位置


这里对应流程块7

  


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-8-22 21:53 被AlickX编辑 ,原因: 图片显示不出来
上传的附件:
收藏
免费 5
支持
分享
最新回复 (12)
雪    币: 12502
活跃值: (3053)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
这是梆梆加固吧。问下楼主,你编译android内核需要多大硬盘呀?仅仅内核。
2019-8-22 23:59
0
雪    币: 1895
活跃值: (1657)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
 unicorn的py脚本写得不错~~~
2019-8-23 10:06
0
雪    币: 448
活跃值: (59)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
白菜大哥 这是梆梆加固吧。问下楼主,你编译android内核需要多大硬盘呀?仅仅内核。
大概2.2G 我是nexus所以同步的msm代码
2019-8-23 10:37
0
雪    币: 448
活跃值: (59)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
z许 [em_13] unicorn的py脚本写得不错~~~
规范的hello,world是吗
2019-8-23 10:38
0
雪    币: 12502
活跃值: (3053)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
AlickX 大概2.2G 我是nexus所以同步的msm代码
这么小,改天我也编译一个
2019-8-23 14:19
0
雪    币: 1705
活跃值: (676)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
老板你这新手有点牛逼啊,你是新手么,别误导群众啊
2019-12-16 20:10
0
雪    币: 977
活跃值: (435)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
8
老板你这新手有点牛逼啊,你是新手么,别误导群众啊
2019-12-16 20:36
0
雪    币: 229
活跃值: (130)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
老板你这新手有点牛逼啊,你是新手么,别误导群众啊
2019-12-17 22:30
0
雪    币: 157
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
老板你这新手有点牛逼啊,你是新手么,别误导群众啊
2019-12-18 09:34
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习
2019-12-18 14:22
0
雪    币: 340
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
老板你这新手有点牛逼啊,你是新手么,别误导群众啊
2019-12-20 17:08
0
雪    币: 431
活跃值: (2779)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
mark
2019-12-22 18:54
0
游客
登录 | 注册 方可回帖
返回
//