吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16082|回复: 24
收起左侧

[Android 脱壳] 一种常规Android脱壳技术的拓展(附工具)

  [复制链接]
Catshark 发表于 2016-5-27 20:21
       
最近在做移动安全测试的项目时,遇到了最新的某数字壳,好久都没脱壳了,记得上次脱壳还是zjdroid通杀的时候。秉着安全研究的精神,趁此机会,又把最新的加固与脱壳技术过了一遍,然而并没有成功脱掉。
郁闷之际,我索性沉下心来,好好看看当前脱壳技术的原理,就这样我在Github上看了几个脱壳工具的代码。其中一个我感觉很有趣, 正是strazzere大神的android-unpacker,这是一款ndk写的动态Android脱壳的工具,原理简单来说就是ptrace,然后在内存中匹配特征码和odex的magic,最后dump到文件。我当然自己编译测试了,但发现是对于最新的壳,貌似还是不管用,总是dump下来一个空文件。
后来我在分析代码,自己边看边改边测试。慢慢结构和代码基本上面目全非了,顺便改了个代码错误( 这个错误就是之前dump结果为空的真凶 -_- ),到最后按照strazzere大神的基本思路索性自己重新写了一个工具(复用了大神的部分代码)。
下面说下几个最重要的和大神方法不一样的地方:1. android-unpacker基本上就是匹配odex magic的函数时(下图),而我不管odex了,专心匹配dex的magic。
2.android-unpacker用pread(下图),而我换了read和lseek,具体就不说为啥了,这是非常重要的一点。
3.我直接抛弃了android-unpacker中的壳的特征匹配这一整块儿内容。
4.android-unpacker只匹配和dump一次,而我引入了双循环机制,这点对我的脱壳成功也非常重要。
5.android-unpacker在peek_memory(下图)中进行magic匹配,我改了逻辑,换了一种匹配方式。

6.另外我还增加了一匹配种方法,来增强匹配的成功率。
7.引入了wait_times机制(很无奈)
7.其他..
我找了三家公司的壳试了下,下面直接上效果图顺便说说工具怎么用:1.这个工具就是ndk程序,所以要在Root后的Android环境下运行(虚拟机和实体机都可以)
2.一般来说,先让工具跑起来等着,第一个参数是包名,第二个参数是等待时间。
3.等待时间有两重含义,第一是当工具发现APP进程后,等待多久才开始第一次Scan;第二是每次Scan的时间间隔。(因为每种壳机制都不太一样,所以dex在内存中出现和留存的时间也不同,所以这个wait_time可以灵活配置,具体大家自己琢磨吧。)
4.实际dump成功的例子(我就不把壳厂商和APP名字写出来了,大家应该都能看出来):
(1)某些壳需要把参数wait_times设置1~3秒,然后打开APP,不然APP会退。

(2)等待时机支持小数秒,呵呵。
(3)这个dump下来的是缺失的dex,接着向下看。
(4)还是上个APP,这次成功了,没关系,多试几次就好了,呵呵。
(5)不写wait_times的话也可以,默认0秒。
(6)某数字公司的壳,dex内存里一直有,所以先启动APP,然后再开工具也是可以的。
(7)再来一个
就不贴dex2jar的图了。
说明
1.工具仅用于安全研究及安全测试,如用于非法用途,后果自负。
2.除了arm版,我还编译了个x86的,方便使用虚拟机的童鞋。
3.本来是准备要再研究更多厂商的,但是这段时间实在是忙,想了想还是先发出来吧。
4.这工具并不是万能的,甚至可以说是不健全的。我仅测试了三家的壳,有两家都可以稳脱,还有一家一部分可以,一部分不行。欢迎大家测试其他的壳,你们脱不了可不要怨我。
5.别跟我要代码了,我的代码太丑陋,直接参考android-unpacker的思路就可以。
下载地址链接: http://pan.baidu.com/s/1hr49HBI 密码: 6bgv

转自freebuf


免费评分

参与人数 6吾爱币 +1 热心值 +6 收起 理由
我爱逆向 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
统列 + 1 谢谢@Thanks!
C.zw + 1 热心回复!
AWEIWEI + 1 鼓励转贴优秀软件安全工具和文档!
随风飘 + 1 鼓励转贴优秀软件安全工具和文档!
caleb110 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

dannyzhou 发表于 2017-6-26 22:28
[*]  The magic was Not Found!
[*]  pid is 1390
[*]  clone pid is 16606
[*]  Scanning dex ...
[*]  The magic was Not Found!
[*]  pid is 1390
[*]  clone pid is 16606
[*]  Scanning dex ...
[*]  The magic was Not Found!
[*]  pid is 1390
[*]  clone pid is 16606
[*]  Scanning dex ...
[*]  The magic was Not Found!
[*]  pid is 1390
[*]  clone pid is 16606
[*]  Scanning dex ...
[*]  The magic was Not Found!
 楼主| Catshark 发表于 2016-5-27 20:32
好像发错地方了。。。。怎么删。。。求删。。。

免费评分

参与人数 1热心值 +1 收起 理由
随风飘 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

huyukun 发表于 2016-5-27 21:13 来自手机
100911 发表于 2016-5-27 21:33
谢谢分享 学习了
头像被屏蔽
chenhao5188 发表于 2016-5-27 21:46
提示: 作者被禁止或删除 内容自动屏蔽
tiexie 发表于 2016-5-27 22:05
要火的节奏,火前留名
liujg 发表于 2016-5-28 00:26
爱加密好像不行,不知道3种壳都是啥壳
caleb110 发表于 2016-5-28 10:47
不错的分享,收下啦,多谢!
XXTK 发表于 2016-5-28 13:02
一直无从下手
z6810753 发表于 2016-5-28 20:10
给力,比手脱快多了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表