首页
论坛
课程
招聘
[原创]梆梆脱壳分析1-所有线程抗gdb技术实现
2015-3-18 22:24 15048

[原创]梆梆脱壳分析1-所有线程抗gdb技术实现

2015-3-18 22:24
15048
我的博客:http://blog.csdn.net/eewolf

对于目前Android平台上的脱壳技术,方法有很多,但对于一名coder而言,如何实现那些“奇技淫巧”,对我而言更加有趣些。
对于梆梆,之前有文章讨论可以attach到其binder线程上,通过gcore、dd来dump内存中的dex。(当然,脱壳方法有很多,不一定非要用这种方法。)
但对于其最新版本,当使用gdb attach到主进程的任一线程上时,要么permission denied,要么会退出,本文章会对其实现机理进行一下分析。
eewolf原创,转载请注明。
1.      主进程fork子进程c1,c1 fork子进程c2;
2.      c1会ptrace attach到主进程的主线程与GC线程(其也会操作memory,所以需要用ptrace方法保护),这样当试图ptrace attach时,会有permission denied;
3.      主进程为了能让c1这个子进程跟踪,需要调用prctl,option为SET_DUMPABLE。但这个API比较危险,其效果与AndroidManifest文件中debuggable选项设为true等价。如果不调用这个api,子进程是不能trace父进程的;
4.      c1也会ptrace到c2进程,来对其进行保护;
5.      这个三个进程间彼此用pipe进行通信;
6.      c1会向主进程内存空间注入大约52字节的数据,应为密钥;
7.      之后c1进入pipe读阻塞sleep;
8.      c2使用inotify监控主进程的每个clone process的mem与pagemap,于是当gdb、dd试图dump内存时,mem的access事件被触发,三个进程集体退出,导致内存dump不完整;这边漏了一个,同时c2会不断打开主进程的各个status文件,看其tracerpid是否为0,非0则被attach,退出;
9.      c2并monitor主进程的task目录,来判断是否有新的clone process或现有的已消亡,来更新monitor的select loop的fd集合。

爱加密也是使用类似方法来实现其功能。
另外,梆梆还hook了write方法,来阻止在进程内部将header为dex的magic code的内容写入磁盘。

eewolf原创,转载请注明。

第五届安全开发者峰会(SDC 2021)议题征集正式开启!

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 167
活跃值: 活跃值 (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bunnyrene 活跃值 2015-3-19 08:45
2
0
hook  write那个好破解 ,字节流中转出来到其他进程就好了
雪    币: 240
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
eewolf 活跃值 2015-3-19 16:01
3
0
或者写的时候,把dex,改成xxx就好啦,呵呵
雪    币: 167
活跃值: 活跃值 (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bunnyrene 活跃值 2015-3-19 16:03
4
0
原来如此
雪    币: 240
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
eewolf 活跃值 2015-3-19 16:04
5
0
是文件header,不是后缀啊
雪    币: 50
活跃值: 活跃值 (15)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
伪装的伤痛 活跃值 2016-3-21 15:20
6
0
好奇测试了一下inotify,  给的参数是 IN_ALL_EVENTS, 我监控了/proc/%d/mem  and  status
然后使用命令行:
adb shell
cd proc/pid/
cat status
cat mem

没一个触发的, 楼主请问和解?
雪    币: 269
活跃值: 活跃值 (169)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
currwin 活跃值 1 2016-5-16 19:43
7
0
原来如此,受教了,最近也在一直研究邦邦加固,但是没找到好的方法绕过
雪    币: 53
活跃值: 活跃值 (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Zkeleven 活跃值 2016-5-16 20:00
8
0
大牛开始研究梆梆啦
游客
登录 | 注册 方可回帖
返回