领导布置了一个关于 APK 加固的任务,我目前的思路是将一部分代码抽成 dex 文件加密,使用时解密完通过字节流加载 dex。卡在 dex 不落地加载上了,求大神提供下思路或者有更好的加固方案也可以提出来
1
hkitdog 2019-09-04 07:44:30 +08:00 via iPhone
类抽取加固?,但在 apk 运行时 dump 出 inscode 然后 patch 到 dump 出的 dex 文件里面,,还是可以脱...
|
3
linhua 2019-09-04 08:25:17 +08:00 1
|
4
LeeSeoung 2019-09-04 09:42:33 +08:00
直接买现成方案加固吧。。你能想到的大厂商都帮你想好了。。N 年前的大厂商做过把核心代码放进 so,运行时动态解密加载。。
|
5
LeeSeoung 2019-09-04 10:26:57 +08:00
看完楼上那篇了。。讲的很详细,楼主可以参考下。。
|
6
xingda920813 2019-09-04 11:26:31 +08:00
|
7
forrestvxu 2019-09-04 11:36:04 +08:00
360 的加固保有免费的可以用哇
|
10
ice000 OP @forrestvxu 360 的加固产品有黑历史,不敢用
|
11
ice000 OP @xingda920813 API 有限制
|
12
xingda920813 2019-09-04 12:57:43 +08:00
@ice000 InMemoryDexClassLoader API 有什么限制?
|
13
ice000 OP @xingda920813 Added in API level 26
|
14
HangoX 2019-09-04 13:59:22 +08:00
放弃吧,加固这个东西太影响运行效率了。你在内存中我直接 dump 就好了,还不如直接用 c 写,然后混淆
|
15
no1xsyzy 2019-09-04 15:39:16 +08:00
设计个词法反人眼、语法反直觉、但语义就是 Java 的语言
写个 JVM 下的该垃圾语言解释器 写个 Java 编译到这个该垃圾语言的编译器 能挡住 99% 的人 同理可扩展到其他任何语言 就好像机器语言和 C 语言的关系( |
16
walkfish 2019-09-04 18:23:10 +08:00
用方舟编译器啊,直接二进制文件
|
17
ice000 OP @HangoX 一般项目混淆就足够了,手头这个项目几乎能预料到他们拿来 APK 第一件事就是研究怎么破解~~用 c 写也是一个办法
|
20
wjh3936 2019-09-05 10:08:03 +08:00
360 有啥黑历史嘛……好奇
|
21
forrestvxu 2019-09-05 10:23:13 +08:00
@HangoX 这位同学说得对~单纯的内存加载已经过时了,现在脱壳工具一大堆。如果你完整的加载到内存,dump 出来就行了,哪怕不完整加载,也有修复手段~
|
22
ice000 OP |