unidbg
unidbg copied to clipboard
求教大神:调用callJNI_OnLoad出现Illegal JNI version: 0xffffffff错误
大神你好,我在调用一个libxyass.so文件的时候,在初始化就出现了下面的错误:
不知道这种错误是不是因为so文件被加壳了。 我的测试代码如下: `package com.github.unidbg.xhs;
import com.github.unidbg.AndroidEmulator; import com.github.unidbg.linux.android.AndroidEmulatorBuilder; import com.github.unidbg.linux.android.AndroidResolver; import com.github.unidbg.linux.android.dvm.*; import com.github.unidbg.memory.Memory;
import java.io.File;
public class TestCallInitMethod extends AbstractJni { private final AndroidEmulator emulator;
private final static String NameSpace = "/data/webapps";
private VM vm;
public TestCallInitMethod() {
emulator = AndroidEmulatorBuilder
.for32Bit()
.setProcessName("xxx")
.build();
final Memory memory = emulator.getMemory();
memory.setLibraryResolver(new AndroidResolver(23));
vm = emulator.createDalvikVM();
vm.setJni(this);
vm.setVerbose(true);
DalvikModule dm = vm.loadLibrary(new File(NameSpace + "/libxyass.so"), false);
dm.callJNI_OnLoad(emulator);
}
@Override
public void callStaticVoidMethodV(BaseVM vm, DvmClass dvmClass, String signature, VaList vaList) {
switch (signature) {
case "com/tencent/mars/xlog/PLog->i(Ljava/lang/String;Ljava/lang/String;)V":
return;
}
super.callStaticVoidMethodV(vm, dvmClass, signature, vaList);
}
public static void main(String[] args) throws Exception {
TestCallInitMethod test = new TestCallInitMethod();
}
} ` so和apk文件如下: 百度网盘:链接: https://pan.baidu.com/s/1kQZt9U4tLKenq-CoiZUaGQ 密码: po3n
求大神解惑,谢谢!
我认为是Unidbg的SO loader存在bug,你需要自己手动执行部分initFunctions
我认为是Unidbg的SO loader存在bug,你需要自己手动执行部分initFunctions 多谢指导,后面我自己检查下
最新代码已修复 https://github.com/zhkl0228/unidbg/commit/ec18bd614513f17c9fb5e153e80f8a6e9e4747c1