一种常规Android脱壳技术的拓展
"最近在做移动安全测试的项目时,碰到了最新的某数子壳,好长时间都没脱壳了,记得之前脱壳还是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的构思就可以。
下载链接
连接: .com://pan.baidu.Com/s/1gfDF6BT"
相关文章
- 4条评论
- 慵吋空宴2022-05-30 12:12:27
- 可以看出来):(1)一些壳需要把主要参数wait_times设置1~3秒,随后打开APP,要不然APP会退。(2)等待时间最佳时机支持小数秒,呵呵呵。(3)这个dump出来的是缺少的dex,随后往下看。(4)还是上一APP,此次成功了,没事儿,多试多次就好啦,呵呵呵。(5)不
- 野欢怙棘2022-05-30 01:52:05
- (7)再来一个也不贴dex2jar的图了。说明1.工具仅用以安全探讨及安全测试,如用以不法主要用途,后果很严重。2.除了arm版,我也编译了个x86的,使用方便虚拟机的盆友。3.原来是准备要再探讨更多制造商的,但是这这几天确实是忙,想想想
- 馥妴眉薄2022-05-30 06:37:29
- -unpacker中的壳的特点配对这整块儿内容。4.android-unpacker只配对和dump一次,可是我加入了双循环措施,其实我们的脱壳成功也非常重要。5.androi
- 森槿鸢栀2022-05-30 07:56:54
- 的脱壳成功也非常重要。5.android-unpacker在peek_memory(图为)中进行magic配对,我改了逻辑性,换了一种配对方式。6.另外我也增加半个配对种方法,来提高配对的成功率。7.加入了wait_times措施(很无可奈何)7.其他._我找了四家公司的壳