StringFog icon indicating copy to clipboard operation
StringFog copied to clipboard

debug包正常,release包static String的变量初始值丢失问题

Open Bewitching-coder opened this issue 2 years ago • 4 comments

release包在visitField方法中object值不为空,在返回时变量被置空,在接下来的visitLdcInsn和visitFieldInsn方法中不会执行这个变量的回调,编译出包后变量初始为空

Bewitching-coder avatar Sep 12 '23 09:09 Bewitching-coder

使用的Java版本是多少?

MegatronKing avatar Sep 12 '23 12:09 MegatronKing

jdk 11

Bewitching-coder avatar Sep 12 '23 14:09 Bewitching-coder

静态变量当有初始值时,stringfog会在StringFogClassVisitor的visitField中置空,在的visitCode中不会去对mStaticFields中的存储的value不为空的变量赋值,在接下来的visitLdcInsn和visitFieldInsn方法中不会对变量赋值,导致编译出的apk中的静态变量初始值为空

Bewitching-coder avatar Sep 12 '23 15:09 Bewitching-coder

目前打印了项目中所以的静态变量,发现有3处出现这个问题,腾讯的OpenSDK中有2处,我的解决方案是在clinit的visitCode中对mStaticFields中的存储的value不为空的变量加密赋值

Bewitching-coder avatar Sep 12 '23 15:09 Bewitching-coder