一、目标
除了AndroidNativeEmu我们还有一个选择 Unidbg 来实现模拟执行so,
GitHub链接
https://github.com/zhkl0228/unidbg
特色
模拟JNI调用API,以便可以调用JNI_OnLoad。
支持JavaVM,JNIEnv。
模拟syscalls调用。
支持ARM32和ARM64。
基于HookZz实现的inline hook。
基于xHook实现的import hook。
支持 iOS fishhook 、 substrate 、 whale hook。
支持简单的控制台调试器,gdb,IDA android调试器服务器,指令跟踪,内存读/写跟踪。
支持iOS objc和Swift运行时。
好吧,看上去很强大的样子,我们来跑个Demo
二、步骤
先把IDEA配置好(java大佬忽略这一步)
奋飞不会java开发,所以装好IDEA就开始迫不及待的导入unidbg工程开始编译:
Tip:
IDEA导入unidbg工程参见 https://code.newban.cn/151.html
报错 Error:(5, 24) java: 程序包io.kaitai.struct不存在
好吧,装一个 brew install kaitai-struct-compiler
继续报错 Error:(3, 34) java: 程序包org.apache.commons.logging不存在
行吧,下载一个 commons-logging-1.2.jar
还报错?不对劲,大神不可能这么难为凡人,一定是哪出了问题??
google之,原来是Maven没有配置好。搞他