@1qaz
2016-12-12T16:48:34.000000Z
字数 2783
阅读 987
未分类
name | year | OS | arch | RAM size | RAM type |
---|---|---|---|---|---|
MotoG | 2013 | 5.1 | armv7 | 1G | LPDDR3 |
3*Nexus 4 | 2012 | 4.4.2/5.0 | armv7 | 2G | LPDDR2 |
Sony Xperia Z2 L50t | 2014 | 6.0.1 | armv7 | 3G | LPDDR3 |
Nexus5 | 2013 | 5.0.1 | armv7 | 2G | LPDDR3 |
Galaxy note3 | 2013 | 5.0 | armv7 | 3G | LPDDR3 |
Galaxy S5 | 2014 | 5.0 | armv7 | 2G | LPDDR3 |
VIVO Y51A | 2015 | 5.1 | armv7 | 2G | LPDDR3 |
2*GN8003 | 2016 | 6.0 | armv8 | 3G | LPDDR3 |
红米note4 | 2016 | 6.0 | armv8 | 3G | LPDDR3 |
魅蓝note3 | 2016 | 5.1 | armv8 | 2G | LPDDR3 |
锤子T3 | 2016 | 6.0.1 | armv8 | 4G | ? |
drammer源码进行了部分修改,主要解决了在N4上会耗尽内存死机的问题。
Hammer的时间在半小时至一小时左右,对于三个连续的行,敲击上面和下面两行每个页面开始的地址,默认次数为1百万次,检查中间一行的值是否有改变。敲击的模式为010和101
Device | Pagemap | RowSize | ns | MB | KB | flips | 1-to-0 | 0-to-1 | exploitable | 1st |
---|---|---|---|---|---|---|---|---|---|---|
SonyZ2 | Yes | 128K | 70 | 109 | 5 | 20736 | 11468 | 9268 | 1013(4.9%) | 2s |
N5 | Yes | 64K | 69 | 40 | 0.39 | 106051 | 105655 | 396 | 6648(6.3%) | 1s |
galaxy note3 | Yes | 128K? | 70 | 36 | 28 | 1308 | 607 | 701 | 117(8.9%) | 10s |
moto g | Yes | 32K | 127 | 7 | 0 | 1 | 1 | 0 | 0 | - |
galaxy S5 | Yes | 64K | 77 | 17 | 76 | 235 | 100 | 135 | 7(3%) | 1s |
N4,4.4.2 | Yes | 64K | 17 | 59 | 84 | 724 | 718 | 6 | 35(4.8%) | 11s |
N4,5.0.1 | Yes | 64K | 18 | 116 | 348 | 342 | 333 | 9 | 22(6%) | 315s |
N4,4.4.2 | Yes | 64K | 17 | 117 | 333 | 362 | 362 | 0 | 25(7%) | 282s |
VIVO Y51A | Yes* | 32K | 117 | 28 | - | 0 | - | - | - | - |
GN8003 | No | ?64k | 175 | 2 | - | 0 | - | - | - | - |
红米note4 | No | ?64k | 24 | 32 | - | 0 | - | - | - | - |
魅蓝note3 | No* | 32K | 160 | 10 | - | 0 | - | - | - | - |
T3 | No | 64K | 111 | 14 | - | 0 | - | - |
Pagemap:/proc/pid/pagemap是否能获取到物理地址,*表示返回page not presents
MB: hammer的内存大小
ns: 平均一次读内存的时间
KB: 平均多少个KB有一个flip
exploitable: 可以用来修改页表的flip数量
1st: 第一次出现可利用的flip的时间
12台机器中,有9台为armv7,除了VIVO Y51A没有测出flip外,其他均有不同数量的翻转;3台armv8的机器都没有测出翻转
翻转方向:N4和N5都表现出了明显的1-to-0个数远超过0-to-1,其他存在问题的机型01变化相当
可利用的flip数:drammer作者论文中考虑了ARM中pagetable的位置和flip不能造成内存地址变化过大超出控制范围的问题,最终估计的可用flip比例上限为7%,从测试结果来看
hammer整体时间的长短不影响结果,存在问题的话应该能在短时间内出现翻转
另外,部分机器的rowsize通过时间旁路检测出的大小不是4K*2的整数幂次方
galaxy note 3
[RS] Reading from page 0 and page x (x = 0..64)
17 23 18 17 17 19 24 18 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 17 141 141 141 141 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17
[RS] Median: 17
[RS] MAD: 0
[RS] IQR: 0
[RS] Corrected IQR: 5
count: 32
[RS] Sequences: 32 4
[RS] Detected row size: 147456
[RS] WARNING! Weird row size detected, assuming familiar model's rowsize 131072
GN8003, pagemap unavailable
[RS] Trying getprop
[RS] ro.product.model: GN8003
[RS] ro.product.name: GN8003
[RS] ro.product.board: GN8003
[RS] ro.board.platform: mt6755
[RS] Allocating 256 ion chunk
[RS] Reading from page 0 and page x (x = 0..64)
311 308 350 350 350 350 350 350 350 350 350 350 350 350 350 350 350 350 385 385 350 350 350 350 350 351 350 350 350 350 350 350 350 350 351 35
0 385 385 350 350 350 349 349 350 350 350 350 350 350 350 350 350 350 350 385 385 351 350 350 350 350 351 350 350
[RS] Median: 350
[RS] MAD: 0
[RS] IQR: 0
[RS] Corrected IQR: 5
count: 64
[RS] Sequences: 2 16 2 16 2 16 2
[RS] Detected row size: 73728
[RS] WARNING! Weird row size detected, assuming 65536
[RS] ro.product.model: Nexus 5
[RS] ro.product.name: hammerhead
[RS] ro.product.board: hammerhead
[RS] ro.board.platform: msm8974
[RS] known model: LG Nexus 5
[RS] Allocating 256 ion chunk
[RS] Reading from page 0 and page x (x = 0..64)
16 16 20 18 17 16 16 16 16 16 16 16 16 16 16 16 137 138 16 16 16 16 16 16 16 16 16 16 16 16 16 16 137 138 16 16 16 16 16 16 16 16 16 16 16 16 16 16 137 138 16 16 16 16 16 16 16 16 16 16 16 16 16 16
[RS] Median: 16
[RS] MAD: 0
[RS] IQR: 0
[RS] Corrected IQR: 5
count: 16
[RS] Detected row size: 65536
[MAIN] Row size: 65536
[MAIN] Exhaust ION chunks for templating