首页
论坛
课程
招聘
[原创] 开源安卓Dex2C (Java2C) 加固
2019-8-18 22:20 14093

[原创] 开源安卓Dex2C (Java2C) 加固

2019-8-18 22:20
14093
DCC(Dex-to-C Compiler)是我参考顶象加固实现的Dex2C编译器,可以把Dex 方法转化为CPP方法,进而可以使用native代码的防护方案对代码进行进一步的保护。相对于我手上顶象样本,还做了一些性能上的优化,主要是全局缓存解析jclass,jmethodID, jfieldID的结果。
仓库地址:DCC
对实现原理有兴趣的朋友可以看看这个简单的实现文档:HowItWorks
我个人测试下来觉得还算稳定,我自己测试了:
  • 安卓art虚拟机art/test/003-omnibus-opcodes测试集。
  • 网上找的几个java小游戏。
  • 微信7.0.5 9个dex,大概20W个方法,转换成功的都可以编译通过(NDK r17c)。编译第一个Dex中的方法(约2.7W),重新打包后,测试转换后的代码语义是否正确。在被微信封号前,测试了登录,登录验证,收发文本,表情,语音信息,刷朋友圈,功能都正常,就是特别的卡。
  • 淘宝,拼多多转换classes.dex后,在主页随便滑动,点开商品详情,功能都还正常,不过也是很卡。貌似他们都做了风控,重新打包都经常提示网络连接断开。
我测试过的安卓版本有5.1.1,7.1.1,9, Q beta。Dalvik虚拟机没有测试过,理论上应该兼容。
最后,发现问题欢迎提issue,我会尽力解决。
附件是art/test/003-omnibus-opcodes转成的CPP代码.

[培训]12月3日2020京麒网络安全大会《物联网安全攻防实战》训练营,正在火热报名中!地点:北京 · 新云南皇冠假日酒店

上传的附件:
收藏
点赞7
打赏
分享
打赏 + 5.00
打赏次数 1 金额 + 5.00
 
赞赏  orz1ruo   +5.00 2019/08/19 上个星期之前看过,一直没测试
最新回复 (53)
雪    币: 3683
活跃值: 活跃值 (94)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
飞飞fei 活跃值 2019-8-18 23:15
2
0
666
雪    币: 1514
活跃值: 活跃值 (501)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Vn小帆 活跃值 2019-8-18 23:27
3
0
好东西啊    
雪    币: 23
活跃值: 活跃值 (130)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
繁华皆成空 活跃值 2019-8-18 23:58
4
0
好东西 已star
雪    币: 2651
活跃值: 活跃值 (395)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
小堆 活跃值 1 2019-8-19 00:36
5
0
划重点:在被微信封号前
滑稽,已star
雪    币: 722
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
think8765 活跃值 2019-8-19 00:41
6
0
雪    币: 7924
活跃值: 活跃值 (154)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
无边 活跃值 2019-8-19 01:13
7
0
微信、淘宝这些不使用加固的原因,就是影响使用。发现卡,说明加固的方法不行,影响效率。
雪    币: 728
活跃值: 活跃值 (1562)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
supperlitt 活跃值 2019-8-19 08:06
8
0
好东西,不说了。
雪    币: 6635
活跃值: 活跃值 (282)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tDasm 活跃值 2019-8-19 08:59
9
0
是不是没有扔掉java虚拟机?否则不会卡。
雪    币: 85
活跃值: 活跃值 (66)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
fneig 活跃值 1 2019-8-19 09:34
10
0
v1 = foo(v0)
v2 = v1
v1 = foo1(v0)

请问楼主,对于这种情况你是怎么处理的?
我是使用引用计数来解决这问题。

雪    币: 862
活跃值: 活跃值 (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
只是来打酱油 活跃值 2019-8-19 09:43
11
0
dex的函数全部转吗?  能控制只转某个包下的类不  ?
雪    币: 97
活跃值: 活跃值 (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lookaside 活跃值 2019-8-19 10:20
12
0
编译后的so大吗
雪    币: 49
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leonrain 活跃值 2019-8-19 10:29
13
0
只是来打酱油 dex的函数全部转吗? 能控制只转某个包下的类不 ?
应该是可以的,有个filter
雪    币: 719
活跃值: 活跃值 (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
uniking 活跃值 2019-8-19 11:23
14
0
mark,感谢楼主开源。
雪    币: 202
活跃值: 活跃值 (147)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
莫灰灰 活跃值 9 2019-8-19 11:27
15
0
牛逼
雪    币: 4
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
myeanngg 活跃值 2019-8-19 13:03
16
0
加固显然是影响效率的,超级app一般都是动态对抗,加固属于静态对抗,而且还影响效率
雪    币: 249
活跃值: 活跃值 (161)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
Loopher 活跃值 2019-8-19 13:39
17
0
牛皮,
雪    币: 232
活跃值: 活跃值 (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
刘lhhh 活跃值 2019-8-19 14:09
18
0
6啊 
雪    币: 261
活跃值: 活跃值 (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
卑鄙游侠 活跃值 2019-8-19 14:35
19
0
牛x 给大佬跪了
雪    币: 919
活跃值: 活跃值 (204)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
seandong 活跃值 2019-8-19 15:18
20
0
开源了,牛逼
雪    币: 2459
活跃值: 活跃值 (824)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
krash 活跃值 2 2019-8-19 17:55
21
0
fneig ``` v1 = foo(v0) v2 = v1 v1 = foo1(v0) ``` 请问楼主,对于这种情况你是怎么处理的? 我是使用引用计数来解决这问题。
你指的是引用释放吗?我这么释放的
DeleteLocalRef(v1)
v1 = foo(v0)
DeleteLocalRef(v2)
// v2 = v1
v2 = NewLocalRef(v1)
DeleteLocalRef(v1)
v1 = foo1(v0)
雪    币: 2459
活跃值: 活跃值 (824)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
krash 活跃值 2 2019-8-19 17:59
22
0
只是来打酱油 dex的函数全部转吗? 能控制只转某个包下的类不 ?
修改filter.txt可以实现,当前支持用正则筛选需要编译的函数.后面应该会支持类,方法注解.
雪    币: 2459
活跃值: 活跃值 (824)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
krash 活跃值 2 2019-8-19 18:06
23
0
lookaside 编译后的so大吗
我觉得很大
应用                方法数(classes.dex)        so大小
微信(7.0.5)           27K                            42m
淘宝(8.10.0)         16K                            26m
拼多多(4.69.0)     40K                            38m
最后于 2019-8-19 18:11 被krash编辑 ,原因:
雪    币: 1166
活跃值: 活跃值 (69)
能力值: ( LV13,RANK:360 )
在线值:
发帖
回帖
粉丝
Ericky 活跃值 6 2019-8-19 22:50
24
0
多谢大佬
雪    币: 838
活跃值: 活跃值 (755)
能力值: ( LV13,RANK:390 )
在线值:
发帖
回帖
粉丝
xiaofu 活跃值 8 2019-8-19 22:55
25
0
大佬牛批
游客
登录 | 注册 方可回帖
返回