-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
问题: github下载的代码,无任何修改,运行部分案例无结果
- 环境:
unidbg: 0.9.8(无任何改动)
jdk: 1.8.0_462
idea: 2020.3.4 idea64.exe(破解版)
maven: 3.8.4
操作系统: windows 11
ps: 环境变量已配置
- 运行案例
SignUtil TTEncrypt 等几个官方案例
打叉都是运行 无返回值,无任何报错 的,打勾就是没问题的,半勾这个32位没问题,64位也无返回值无报错
具体如下图所示:

3.部分DEBUG日志
在配置文件中把所有日志级别都改成DEBUG
输出的日志大多为如下
[17:29:17 752] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libdl.so]memcpy symbol resolved to libc.so [17:29:17 752] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libdl.so]__cxa_begin_cleanup symbol resolved to libc++.so [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libdl.so]__cxa_type_match symbol resolved to 0 [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libc.so]__cxa_call_unexpected symbol resolved to libc++.so [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libc.so]__cxa_begin_cleanup symbol resolved to libc++.so [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libc.so]__cxa_type_match symbol resolved to 0 [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libm.so]__cxa_call_unexpected symbol resolved to libc++.so [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libm.so]__cxa_begin_cleanup symbol resolved to libc++.so [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libm.so]__cxa_type_match symbol resolved to 0 [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libsignutil.so]__cxa_call_unexpected symbol resolved to libc++.so [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libsignutil.so]__cxa_begin_cleanup symbol resolved to libc++.so [17:29:17 753] DEBUG [com.github.unidbg.linux.AndroidElfLoader] (AndroidElfLoader:199) - resolveSymbols[libsignutil.so]__cxa_type_match symbol resolved to 0 [17:29:17 753] DEBUG [com.github.unidbg.linux.AbsoluteInitFunction] (AbsoluteInitFunction:50) - [libc.so]CallInitFunction: RX@0x120bb68d[libc.so]0x1668d [17:29:17 756] DEBUG [com.github.unidbg.thread.UniThreadDispatcher] (UniThreadDispatcher:95) - runMainForResult main=Runnable|Function32 address=0x120bb68d, arguments=[] [17:29:17 757] DEBUG [com.github.unidbg.thread.UniThreadDispatcher] (UniThreadDispatcher:134) - Start dispatch task=Runnable|Function32 address=0x120bb68d, arguments=[] [17:29:17 757] DEBUG [com.github.unidbg.AbstractEmulator] (AbstractEmulator:364) - emulate RX@0x120bb68d[libc.so]0x1668d started sp=unidbg@0xe4fff720
- 问题定位
加载so就会中断运行
DalvikModule dm = vm.loadLibrary(new File("unidbg-android/src/test/resources/example_binaries/armeabi-v7a/libsignutil.so"), true);
断点定位
com.github.unidbg.linux.LinuxModule.callInitFunction(Emulator<?> emulator, boolean mustCallInit)
这个方法中的initAddress = initFunction.call(emulator);中的问题
一直追踪,最后定位在 com.github.unidbg.AbstractEmulator.emulate(long begin, long until) 方法中的backend.emu_start(begin, until, 0, 0);
emu_start是unicorn中的navtive方法,每次运行到这就被中断了,无任何报错,如果把这里注释最后会出现在类里面找不到方法的情况
感觉像是我电脑环境的原因,但是该配置的都已经配置了