首页
社区
课程
招聘
未解决 [求助]Android dex加固后内存涨了1倍,如何解决 50雪币
发表于: 2024-6-20 14:22 1780

未解决 [求助]Android dex加固后内存涨了1倍,如何解决 50雪币

2024-6-20 14:22
1780

Android dex加固,不管是落地或者不落地加载dex,内存增量有两部分
1、原始dex加密后也是存在于apk,这块内存会被mmap到内存
2、解密dex时,需要申请一块空间用于释放dex,如果是内存中加载dex,这块内存就不能释放,如果是落地释放到目录下,但是加载到classloader时也会再占用内存

对比未加固的,第二点的内存好像无法避免,这样就造成了内存增长,大家有什么解决思路吗?


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2622
活跃值: (1815)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
各有利弊,这也是有些厂不用加固的原因,
换种方式提高安全性,比如核心加密放到so里,然后加固so,可能会省些内存
2024-6-21 08:39
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

第二点理解有误。解密dex时申请二内存,一是被解密dex存放内存,二是解密后dex的存放内存。第一块内存解密后会释放掉,第二块内存基本等于你加密前dex大小。也就是说你加不加密,第二块内存都不会有什么变化

最后于 2024-6-21 09:34 被tDasm编辑 ,原因:
2024-6-21 09:30
0
雪    币: 55
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
暗月隐落 各有利弊,这也是有些厂不用加固的原因, 换种方式提高安全性,比如核心加密放到so里,然后加固so,可能会省些内存
分析过najia的,他们把dex数据隐藏在shell的一个class里,但是不清楚如何加载dex的,他们的内存基本和未加固之前是差不多的,不知道是有什么方法
2024-6-21 09:56
0
雪    币: 55
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
tDasm 第二点理解有误。解密dex时申请二内存,一是被解密dex存放内存,二是解密后dex的存放内存。第一块内存解密后会释放掉,第二块内存基本等于你加密前dex大小。也就是说你加不加密,第二块内存都不会有什么 ...
是的,解密申请的内存会释放掉,但是加载dex的内存基本全量加载到内存中了。这个和系统加载dex是否有区别,是否和oat有关,有什么优化方向吗,本人尝试过的:
1、shell dex在解密完之后就没用了,尝试过ClassLoader去掉shell dex并close DexFile来释放内存,但未成功,系统有打印日志显示关闭失败,分析源码后,应该是还有class被引用导致关不掉,后面就不知道怎么处理了
2、将apk mmap到内存的通过madvise MADV_DONTNEED去释放内存,无果
2024-6-21 10:11
0
游客
登录 | 注册 方可回帖
返回
//