首页
社区
课程
招聘
[原创]APK自我保护方法
发表于: 2013-12-28 21:41 109884

[原创]APK自我保护方法

2013-12-28 21:41
109884
收藏
免费 5
支持
分享
最新回复 (81)
雪    币: 112
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
好文,拜读了。多谢LZ
2014-1-6 08:51
0
雪    币: 10
活跃值: (271)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
好东西,多谢分享~!
2014-1-20 09:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
收藏稍后慢慢看
2014-1-20 15:40
0
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
29
顶,学习。
2014-1-20 15:58
0
雪    币: 30
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
非常受用。。。。
2014-1-25 09:40
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
谢谢!收藏了。
2014-1-25 11:12
0
雪    币: 16420
活跃值: (1670)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
写的不错,看来难度不小。
2014-1-29 09:42
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
写得很好,学习了!
2014-2-10 17:13
0
雪    币: 257
活跃值: (105)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
34
mark
2014-2-11 09:36
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
35
mark,赞一个
2014-2-11 09:44
0
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
好文章! 好总结
2014-2-12 09:30
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
先收藏,以后慢慢细品
2014-2-13 11:26
0
雪    币: 2
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
总结的太好了,很多软件都在重打包这下了功夫。测试了下,微信也是将文件属性更改为png来防止二次打包。信息量大,读了几遍。
2014-3-4 21:57
0
雪    币: 5
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
在您的隐藏方法的方法中,有这么一段话:“更新需隐藏方法的下一个方法的 methodIdx,可以使用公式:
next_method_idx=original_next_method_idx + original_method_idx ”请问这个公式可以详细解释下吗?为什么需要更新需隐藏方法的下一个方法的 methodIdx 呢?谢谢了
2014-3-5 17:27
0
雪    币: 1585
活跃值: (182)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
太好了,非常需要
2014-3-6 14:14
0
雪    币: 293
活跃值: (225)
能力值: (RANK:250 )
在线值:
发帖
回帖
粉丝
41
具体的你可以参考http://wikisec.free.fr/papers/hidex-hack.lu.pdf文中关于method_idx_diff字段的解释。DexMethod结构体中的methodIdx实际上是个增量(第一个是个绝对值),但是后续的其实都是个增量,所以隐藏方法步骤中将需隐藏方法的methodIdx设为0,也就相当于增量是0(当然是针对非第一个method),这样就指向了前一个方法。由于修改了这个methodIdx,那么接下来那个DexMethod的methodIdx由于是基于前一个的增量,所以必须得加上隐藏方法的methodIdx.
例如:
需要隐藏的DexMethod的methodIdx是0x02,其下一个DexMethod的methodIdx是0x01,注意这里都是增量;这样如果我修改了需隐藏DexMethod的methodIdx为0x0,那么接下来那个DexMethod的methodIdx绝对量变了,所以必须修改为0x02+0x01=0x03,这样才能保证索引到正确的值。

不知道这样解释能帮助你不?
2014-3-6 21:23
0
雪    币: 5
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
非常感谢,我看看您发给我的链接,
2014-3-12 12:56
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
看了,收获匪浅,感谢楼主辛勤打字,回去学习下。
2014-3-13 16:36
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
非常感谢楼主精彩的文章,受益匪浅,对楼主的专研精神感到敬佩。
楼主文中说的
需要注意的是,在 DexClass.h 中,所有的 u4 类型,实际上是 uleb128 类型。

稍微斟酌一下哈,leb128存储空间大小是动态的,如果文件中预先分配的就是4个字节,这时就不是leb128了哦。比如 map_item_list 中item的 uint size 。
2014-3-25 08:59
0
雪    币: 260
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
牛人啊。楼主。
2014-4-18 11:06
0
雪    币: 255
活跃值: (207)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
好文章必须顶, 膜拜前辈~
2014-5-16 10:08
0
雪    币: 234
活跃值: (49)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
好全面,好专业!
2014-5-26 10:54
0
雪    币: 230
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
48
总结的不错,楼主有空可以弄成个手册供大家查询。
2014-5-26 15:45
0
雪    币: 547
活跃值: (534)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
49
mark,好帖子
2014-5-29 09:50
0
雪    币: 236
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
感谢大牛分享,收下慢慢消化~~!
2014-11-19 14:42
0
游客
登录 | 注册 方可回帖
返回
//