maoabc / nmmp

dex-vm used to protect the android classes.dex file
753 stars 263 forks source link

提交BUG #9

Open githubMomsg opened 3 years ago

githubMomsg commented 3 years ago

VM测试配置com.adguard.android.ui.fragments.onboarding.* com.adguard.android.service.** 这两个包下的类的方法全VM会异常

这是异常日志和样本APP的下载地址 http://d0.ananas.chaoxing.com/download/80aade04ab2b869115dbfc74bb6d8b0e?at_=1622780064591&ak_=3c1fc032b2449f676a66fdae735cb016&ad_=8cf8aff7751a144b6d1b2706e1be646f

maoabc commented 3 years ago

下载链接有问题

maoabc commented 3 years ago

汗,复制链接下载好了。

maoabc commented 3 years ago

原因找到了,GetStaticXXXField无法通过子类得到接口里静态域的值。

interface A {
        public static Object obj = new Object();

        public static int INT = 3456;
}
class B implements A {
}
// 通过B访问得到接口A里的静态域
int i=B.INT;// 这种在java里没问题,但jni里就会变成jint i = env->GetStaticIntField(classB, ...);,会得不到值

等有时间修复下,生成c代码时分析下这种代码,把子类(B)换成接口自身(A)