首页
社区
课程
招聘
[原创]脱壳成长之路(1)一款很老的2代壳脱壳经历
发表于: 2019-9-19 23:31 8958

[原创]脱壳成长之路(1)一款很老的2代壳脱壳经历

2019-9-19 23:31
8958

这是一款很老的壳了(4.4直接用hook opt的dexdump无法dump出。),花了不短的时间,终于搞定了,今天记录一下流程。

先反编译,发现smali中的方法体都是Nop了。继续看Java代码,找到很可疑加载dex的地方


OK,下面进入native层找答案



先过一下反调试,反调试代码在initarray

相关资料

loadLibrary的流程

调试init和init_array技巧(这个壳是在init_array初始化反调试的)

反调试在gnu_..._11中,通过bsdsignal反调试的





代码中是判断常量为-1的时候,直接bsd了,我改的方法是,直接改成比较-2.然后重新覆盖so,由于我的系统刷的是没有安装签名校验的。

另一个点是检测data/local/tmp下面是否有android_server 由于我名字之前就改掉了,后面调试的时候才知道有这个。


经过漫长的调试,最终定位关键代码

interface4函数


由于接下来的so是动态加载的,所以不能实时保存日志,所以强烈建议写一个ida脚本动态保存日志,方便我们继续分析


这个是我写的,idapython脚本,有用但是很丑,凑合着用,根本就是根据起始地址和结束地址,然后把中间的日志和地址对应,保存起来。

又是漫长的调试,进入下一个关键地方


可以看到到这边已经修复classdefdata了。

附一张修复前和修复后的图

修复前


修复后


下面就是要向6520792这个偏移地址写真正的classdefdata了


这里说下 dump后的dex不是标准的dex,所以要baksmali一下,然后再smali,就是标准的dex了


整体流程:

hook了4.4的opt函数,所以无法dump出dex

更改原来apk的classdef以及classdefdate,将真正的数据存到apk中,native层从apk中取真正的classdef替换老的。


然后后面的任务,是直接自动化脱一下,顺便提升一下自己写C的能力(我C语言太菜了)

首先,先确认hook的点,第一个要得到apk地址,第二个找到修复后的点.

OK,最终确认了方案,用inject+substrate

1、通过hook字符串比较函数,确定apk地址

2、通过最后的munmap函数,拿到修复后的点


我C代码写的太烂了,还请大家包涵。。



最终mycql.dex就是dump出的dex了


最后付一个样本


[课程]FART 脱壳王!加量不加价!FART作者讲授!

最后于 2020-2-28 09:05 被GitRoy编辑 ,原因:
上传的附件:
  • 2.apk (3.35MB,125次下载)
收藏
免费 2
支持
分享
最新回复 (15)
雪    币: 5330
活跃值: (5424)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
有非常详细的分析在印象笔记上,有需要的话,可以共享一哈!
2019-9-19 23:53
0
雪    币: 21449
活跃值: (62288)
能力值: (RANK:125 )
在线值:
发帖
回帖
粉丝
3
感谢分享~ 排版可以再优化下哈
2019-9-20 09:34
0
雪    币: 5330
活跃值: (5424)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
Editor 感谢分享~ 排版可以再优化下哈
好的,写的太少没有经验,我多多去借鉴别的大神的排版
2019-9-20 10:05
0
雪    币: 105
活跃值: (4185)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
GitRoy 有非常详细的分析在印象笔记上,有需要的话,可以共享一哈!
老哥 详细版本的能分享一下嘛
2019-9-20 10:17
0
雪    币: 3486
活跃值: (1567)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
老哥 来一份 详细分析资料。谢谢
2019-9-20 11:27
0
雪    币: 6737
活跃值: (3907)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
想看看idapythn脚本怎么写的
2019-9-21 16:10
0
雪    币: 5437
活跃值: (3586)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
现在壳发展到几代了?每一代大概都是怎样的情况?
2019-9-23 16:37
0
雪    币: 32
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
任蝶飞 现在壳发展到几代了?每一代大概都是怎样的情况?
第五代
2019-9-23 18:35
0
雪    币: 32
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
你这名字我仿佛懂了什么,哈哈哈,任无妈
2019-9-23 18:36
0
雪    币: 163
活跃值: (1538)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
GitRoy 有非常详细的分析在印象笔记上,有需要的话,可以共享一哈!
可以共享下更详细些的:)
2019-9-25 10:15
0
雪    币: 11015
活跃值: (7199)
能力值: ( LV12,RANK:214 )
在线值:
发帖
回帖
粉丝
12
求一份详细的笔记
2019-11-7 15:52
0
雪    币: 1034
活跃值: (246)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13

--

最后于 2020-9-9 09:58 被okchenshuo编辑 ,原因:
2019-12-7 19:24
0
雪    币: 758
活跃值: (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
求一份详细的笔记
2019-12-17 10:40
0
雪    币: 120
活跃值: (1592)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
求一份笔记!
2019-12-24 11:14
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
大佬,能给个详细版本的吗?
2020-3-9 18:44
0
游客
登录 | 注册 方可回帖
返回
//