unidbg icon indicating copy to clipboard operation
unidbg copied to clipboard

load so crash

Open xhtechxposed opened this issue 3 years ago • 5 comments

java.lang.IllegalStateException: mmap2 MAP_FIXED not found mapped memory: start=0x4000a000 what is mean ?

xhtechxposed avatar Jun 19 '21 13:06 xhtechxposed

提供测试代码

zhkl0228 avatar Jun 20 '21 00:06 zhkl0228

package com.sun.jna;

import android.app.VMContant; import com.github.unidbg.; import com.github.unidbg.arm.backend.DynarmicFactory; import com.github.unidbg.arm.context.RegisterContext; import com.github.unidbg.file.FileResult; import com.github.unidbg.file.IOResolver; import com.github.unidbg.file.linux.AndroidFileIO; import com.github.unidbg.hook.hookzz.HookEntryInfo; import com.github.unidbg.hook.hookzz.HookZz; import com.github.unidbg.hook.hookzz.IHookZz; import com.github.unidbg.hook.hookzz.InstrumentCallback; import com.github.unidbg.hook.whale.IWhale; import com.github.unidbg.hook.whale.Whale; import com.github.unidbg.hook.xhook.IxHook; import com.github.unidbg.linux.android.AndroidEmulatorBuilder; import com.github.unidbg.linux.android.AndroidResolver; import com.github.unidbg.linux.android.XHookImpl; import com.github.unidbg.linux.android.dvm.; import com.github.unidbg.linux.android.dvm.jni.ProxyClassFactory; import com.github.unidbg.linux.file.DirectoryFileIO; import com.github.unidbg.linux.file.MapsFileIO; import com.github.unidbg.linux.file.RandomFileIO; import com.github.unidbg.linux.file.SimpleFileIO; import com.github.unidbg.memory.Memory;

import java.io.File; import java.io.IOException;

public class Xiliao extends AbstractJni implements IOResolver {

private static LibraryResolver createLibraryResolver() {
    return new AndroidResolver(19);
}

private static AndroidEmulator createARMEmulator() {
    return AndroidEmulatorBuilder.for32Bit()
            .setProcessName("com.sun.jna")
            .addBackendFactory(new DynarmicFactory(true))
            .build();
}

private final AndroidEmulator emulator;
private  Module module = null;


private  DvmClass AesImpl;
private VM vm = null;

private Xiliao() {
    emulator = createARMEmulator();

    final Memory memory = emulator.getMemory();

    memory.setLibraryResolver(createLibraryResolver());
    //memory.setLibraryResolver(new AndroidResolver(23)); // 设置系统类库解析


    //vm = emulator.createDalvikVM(new File(System.getProperty("user.dir")+"/xiliao.apk"));
    vm = emulator.createDalvikVM(null);
    vm.setDvmClassFactory(new ProxyClassFactory());
    vm.setVerbose(true);
    vm.setJni(this);
    VMContant.vm = vm;
    emulator.getSyscallHandler().setVerbose(true);
   //DalvikModule dm = vm.loadLibrary("crypt2", true);
   //dm.callJNI_OnLoad(emulator);
    //module = dm.getModule();


    //DalvikModule dm2 = vm.loadLibrary("sqlite", false);
    //DalvikModule dm1 = vm.loadLibrary("RongIMLib", false);

    DalvikModule dm2 = vm.loadLibrary(new File("F:\\Temp\\libsqlite.so"), false);
    DalvikModule dm1 = vm.loadLibrary(new File("F:\\Temp\\libRongIMLib.so"), false);
    //dm1.callJNI_OnLoad(emulator);
    //module = dm1.getModule();
    emulator.getSyscallHandler().addIOResolver(this);
    //AesImpl = vm.resolveClass("com/ehking/crypt/core/cxx/AesImpl");
   /* try {
        new IMPServer(Xiliao.this);
    } catch (Exception e) {
        e.printStackTrace();
    }*/


}







public static void main(String[] args) throws Exception {
    Xiliao test = new Xiliao();
}



@Override
public FileResult resolve(Emulator emulator, String pathname, int oflags) {
    System.out.println("resolve file:" + pathname);

    return null;
}

}

ghost avatar Jun 20 '21 02:06 ghost

涉及的so呢

zhkl0228 avatar Jun 20 '21 05:06 zhkl0228

我这边也遇到这个问题了,载入SO会崩溃 libwhitebox.so_0x7e11fe9000_856064_fix.so.zip

Andyworker avatar Sep 10 '21 11:09 Andyworker

我这边也遇到这个问题了,载入SO会崩溃 libwhitebox.so_0x7e11fe9000_856064_fix.so.zip

不能加载dump后的,加载原始so

zhkl0228 avatar Sep 11 '21 03:09 zhkl0228