Unidbg执行callJNI_OnLoad 报错 Unidbg Illegal JNI version: 0xffffffff

执行callJNI_OnLoad 出现 Unidbg Illegal JNI version: 0xffffffff

初始执行代码如下:

		private final AndroidEmulator emulator;
		private final VM vm;
		// 创建模拟器实例,进程名建议依照实际进程名填写,可以规避针对进程名的校验
        emulator = AndroidEmulatorBuilder.for32Bit()
                .setProcessName("包名")
                .build();
        // 获取模拟器的内存操作接口
        final Memory memory = emulator.getMemory();
        // 设置系统类库解析
        memory.setLibraryResolver(new AndroidResolver(23));
        // 创建Android虚拟机
        vm = emulator.createDalvikVM();
        
		// 注册libandroid.so虚拟模块
        new AndroidModule(emulator, vm).register(memory);

        // 加载目标SO
        DalvikModule dm = vm.loadLibrary(new File("unidbg-android\\src\\test\\resources\\libkwsgmain.so"), true);

        // 打印日志
        vm.setVerbose(true);
        // 调用JNI OnLoad
        dm.callJNI_OnLoad(emulator);
    }

执行Unidbg时报错 Illegal JNI version: 0xffffffff

请添加图片描述

解决方法是需要传入so所在APK创建Android虚拟机

vm = emulator.createDalvikVM(new File("unidbg-android\\src\\test\\resources\\xxxxxx.apk"));

同时加载目标so时也需要改一下格式,不能以new File() 的方式加载

so 名称, 要去掉 lib 和 .so

DalvikModule dm = vm.loadLibrary("kwsgmain", true);

完整代码如下:

		private final AndroidEmulator emulator;
		private final VM vm;
		// 创建模拟器实例,进程名建议依照实际进程名填写,可以规避针对进程名的校验
        emulator = AndroidEmulatorBuilder.for32Bit()
                .setProcessName("包名")
                .build();
        // 获取模拟器的内存操作接口
        final Memory memory = emulator.getMemory();
        // 设置系统类库解析
        memory.setLibraryResolver(new AndroidResolver(23));
        // 创建Android虚拟机,传入APK,Unidbg可以替我们做部分签名校验的工作
        vm = emulator.createDalvikVM(new File("unidbg-android\\src\\test\\resources\\xxxx.apk"));
        
		// 注册libandroid.so虚拟模块
        new AndroidModule(emulator, vm).register(memory);

		// 加载目标SO
        DalvikModule dm = vm.loadLibrary("kwsgmain", true);

        // 打印日志
        vm.setVerbose(true);
        // 调用JNI OnLoad
        dm.callJNI_OnLoad(emulator);

加载成功!!!
请添加图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张三是个好人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值