首页
社区
课程
招聘
[更新]讨论android加固防内存dump的技术及vmp壳的防护强度
发表于: 2015-12-6 12:05 23543

[更新]讨论android加固防内存dump的技术及vmp壳的防护强度

2015-12-6 12:05
23543
之前有做过加壳,知道在运行时解密数据,必然要将解密密钥嵌入加密壳中,这样一来,攻击者还是可以直接从内存中dump数据,很容易被脱壳。

所以请教各位,防内存dump有哪些技术或手段呢?有做过这方面的吗?可否提供一点思路呀,妹子求指导〒_〒
=========

【20160425更新补充】:感谢各位大神的认真回复。很惭愧,看过很多资料仍然对一些细节感到迷惑,特此补充,望不吝赐教么么哒(づ ̄ 3 ̄)づ  ps,只做学术探讨,暂不考虑商业化呜呜。

1. 能否清楚一点的讲一下内存转储到底是怎么一回事,能dump出来什么,曾试着用IDA做过dump,可以将dex文件整个取出,那么so文件或是其他文件,是不是原理上只要知道文件的起始位置和大小,都可以将其dump出来?或者说,dump需要什么条件

2. 大家后面的跟帖较多的提到了vmp壳的相关问题,请问java层和so层的vmp壳分别能起到怎样的效果?所谓的终极壳到底强在哪,它的安全性体现在哪些方面?比如可以对抗哪些其他加固方法不能抵御的攻击吗。至今没有见到各大加固商推出,是兼容性问题,还是其他原因?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (30)
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大周末的木有人吗〒_〒
2015-12-6 14:02
0
雪    币: 6366
活跃值: (4336)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
妹子。。。爆照就有人了
2015-12-6 15:39
0
雪    币: 219
活跃值: (52)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
inotify 或者 fork子进程 相互ptrace ?
2015-12-6 21:14
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
5
大周末还加班么~~

首先,加解密和内存dump没有直接的关系。
然后,只要发布出去的程序,就肯定可以被破解,只是代价问题。

再然后,防内存dump?肯定是防不住的,因为整个系统都是用户的,你拿什么防。
最后,防小白和工具流还是可以的,但只是增加一点难度而已。具体怎么做,要看你针对什么dump方法,没有通用的防御方案。
2015-12-7 10:37
0
雪    币: 226
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
每个函数加密,用的时候再解密
2015-12-7 16:55
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
相互ptrace看到有做的了,inotify资料不太多,没有看到实现呢,还听说一种hook read()函数的方法,不知可不可行〒_〒
2015-12-7 20:17
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
相互ptrace看到有做的了,inotify资料不太多,没有看到实现呢,还听说一种hook read()函数的方法,不知可不可行〒_〒
2015-12-7 20:20
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
哇~~惊现大神膜拜一下
dump方法 gdb IDA zjDroid 这些原理难道不一样的吗?  
大神觉得hook特定函数防内存被读取这个思路可行吗?VM虚拟化呢
2015-12-7 20:24
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
10
1. gdb IDA
2. zjDroid Xposed
3. dd大法

1. 就是反调试,反调试做到了就ok
2. 可以通过hook函数防止内存被写入文件,但是你hook哪个函数,被人知道了,也就bypass了。就是打个信息差,但是防御者会占据很大的劣势
3. 貌似无解,没见过能防的,也没深入研究过
2015-12-8 12:29
0
雪    币: 269
活跃值: (906)
能力值: ( LV12,RANK:345 )
在线值:
发帖
回帖
粉丝
11
最后一个可行,vm你做得出来吗
2015-12-8 12:37
0
雪    币: 949
活跃值: (119)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
感觉现在的壳一般都是通过反调试来对抗dump,防止内存dump听说过,但一直不知道怎么实现
2015-12-8 16:12
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
嗯嗯!感谢回复!受教了(●'◡'●)
2015-12-9 10:58
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
感觉这是个未来值得研究的方向
2015-12-9 10:59
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢回复,共同学习
2015-12-9 11:03
0
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这不就是传说中的梆梆4.0吗
2015-12-10 11:02
0
雪    币: 22
活跃值: (242)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
17
VM确实是发展方向,简单点可以用O-LLVM混淆native代码。
2016-3-5 10:24
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
用O-LLVM混淆native代码,大神做过吗?可否留个扣扣请教一下
还有android VMP壳还有接触呀?
2016-3-6 19:56
0
雪    币: 213
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
爆照换qq
2016-4-19 13:53
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20


高德招实习不
2016-4-19 15:19
0
雪    币: 35
活跃值: (139)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
21
inotify 内存文件监视,可以去分析下数字加固是怎么用的,但实际效果也不大。
防止破解增加反调试,代码膨胀插花ollvm不错的选择
防止内存dump,稍微有效的手段是将dex内存不连续;
而对于不连续的dex又可以fuzz class重建dex来完全dump,对抗内存重建可以在dex里塞坑,比如stringIdsSize、debug_info_off等。

对于vm,难产品化
2016-4-20 11:07
0
雪    币: 3
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
谢谢回复!
vm虽然难商业化,但是应该可以作为一个研究思路吧?毕竟我只是个学院派嘿嘿o(^▽^)o
大神对java层vm了解吗,可否留Q交流下
2016-4-20 16:01
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
从web安全转行到移动安全了,每天都在研究安卓安全的问题,希望多交流
2016-4-20 23:52
0
雪    币: 250
活跃值: (251)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
java层的VMP很难商用,大概思路是自定义一套指令集和与之对应的解释器,先将标准的指令转换成自己的指令,然后由解释器将自己的指令解释给dalvik的解释器,由dalvik解释器进行最终的解释执行。就类似是在dalvik虚拟机里再放一个虚拟机。
有两个难题需要解决:
一是稳定性
  不管什么方法,这都是一个大难题,安卓的设备,版本,系统太多太多。
二是运行效率
  本身dalvik就是个虚拟机,此方案更是加了一个虚拟机,运行效率大概会下降100倍左右
2016-4-21 14:29
0
雪    币: 34
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
正所谓破坏容易,建设难。攻和受两者永远是死循环。
2016-4-21 16:04
0
游客
登录 | 注册 方可回帖
返回
//