unidbg死活报错: BackendException: unicorn.UnicornException: Invalid instruction (UC_ERR_INSN_INVALID)

com.github.unidbg.arm.backend.BackendException: unicorn.UnicornException: Invalid instruction (UC_ERR_INSN_INVALID)
	at com.github.unidbg.arm.backend.UnicornBackend.emu_start(UnicornBackend.java:378)
	at com.github.unidbg.AbstractEmulator.emulate(AbstractEmulator.java:380)
	at com.github.unidbg.thread.Function32.run(Function32.java:39)
	at com.github.unidbg.thread.MainTask.dispatch(MainTask.java:19)
	at com.github.unidbg.thread.UniThreadDispatcher.run(UniThreadDispatcher.java:172)
	at com.github.unidbg.thread.UniThreadDispatcher.runMainForResult(UniThreadDispatcher.java:96)
	at com.github.unidbg.AbstractEmulator.runMainForResult(AbstractEmulator.java:340)
	at com.github.unidbg.arm.AbstractARMEmulator.eFunc(AbstractARMEmulator.java:229)
	at com.github.unidbg.linux.AbsoluteInitFunction.call(AbsoluteInitFunction.java:55)
	at com.github.unidbg.linux.LinuxModule.callInitFunction(LinuxModule.java:141)
	at com.github.unidbg.linux.AndroidElfLoader.loadInternal(AndroidElfLoader.java:180)
	at com.github.unidbg.linux.AndroidElfLoader.loadInternal(AndroidElfLoader.java:62)
	at com.github.unidbg.spi.AbstractLoader.load(AbstractLoader.java:233)
	at com.github.unidbg.linux.android.dvm.BaseVM.loadLibrary(BaseVM.java:236)
Caused by: unicorn.UnicornException: Invalid instruction (UC_ERR_INSN_INVALID)
	at unicorn.Unicorn.emu_start(Native Method)
	at com.github.unidbg.arm.backend.UnicornBackend.emu_start(UnicornBackend.java:376)
	... 179 more
debugger break at: 0x4004450c @ Function32 address=0x400404d0, arguments=[]
>>> r0=0x0 r1=0x0 r2=0xbffff6a8 r3=0x1 r4=0x4017ddf0 r5=0xbffff700 r6=0x1 r7=0x4017defc r8=0xfffffb27 sb=0x10 sl=0x40177e4c fp=0x0 ip=0x4017defc
>>> SP=0xbffff6e0 LR=RX@0x400406b0[libmmcrypto.so]0x406b0 PC=RX@0x4004450c[libmmcrypto.so]0x4450c cpsr: N=0, Z=1, C=1, V=0, T=0, mode=0b10000
>>> d0=0x0(0.0) d1=0x3220302034203720(3.002229861217884E-67) d2=0x3436333832203236(3.5366761868402984E-57) d3=0x3120323938343135(4.583358096989596E-72) d4=0x2030203020302030(1.2027122125173386E-153) d5=0x2030203020302030(1.2027122125173386E-153) d6=0x2030203020302030(1.2027122125173386E-153) d7=0x2030203020302030(1.2027122125173386E-153)
>>> d8=0x0(0.0) d9=0x0(0.0) d10=0x0(0.0) d11=0x0(0.0) d12=0x0(0.0) d13=0x0(0.0) d14=0x0(0.0) d15=0x0(0.0)
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - architecture is WINDOWS_64 os.name is windows 10
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is natives/windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is demumble.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource natives/windows_64/demumble.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is demumble.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource windows_64/demumble.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is META-INF/lib/windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is demumble.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource META-INF/lib/windows_64/demumble.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - architecture is WINDOWS_64 os.name is windows 10
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is natives/windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is disassembler.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource natives/windows_64/disassembler.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is disassembler.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource windows_64/disassembler.dll
[main] DEBUG org.scijava.nativelib.NativeLibraryUtil - platform specific path is META-INF/lib/windows_64/
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - mappedLib is disassembler.dll
[main] DEBUG org.scijava.nativelib.BaseJniExtractor - Couldn't find resource META-INF/lib/windows_64/disassembler.dll

最初还以为是识别不到动态链接库,试图将so文件添加到classpath,浪费很多时间。

后来通过反复排查,最终发现是jcl-over-slf4j依赖冲突导致。

将罪魁包"org.slf4j:jcl-over-slf4j"exclusion解决

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
抱歉,我之前提供的安装步骤可能有误。请按照以下步骤重新尝试安装pwndbg: 1. 首先,确保您的系统上已经安装了gdb调试器。如果没有安装,请使用以下命令安装: ``` sudo yum install gdb ``` 2. 接下来,您需要安装一些依赖项。请运行以下命令安装这些依赖项: ``` sudo yum install git python3 python3-devel ``` 3. 然后,您可以使用git命令克隆pwndbg存储库。请运行以下命令: ``` git clone https://github.com/pwndbg/pwndbg ``` 4. 进入pwndbg目录: ``` cd pwndbg ``` 5. 确保您已经安装了Python虚拟环境(virtualenv)。如果没有安装,请使用以下命令安装: ``` sudo python3 -m pip install virtualenv ``` 6. 创建并激活Python虚拟环境: ``` python3 -m venv venv source venv/bin/activate ``` 7. 然后,使用pip命令安装pwndbg: ``` python -m pip install --upgrade pip python -m pip install --upgrade pwntools python -m pip install --upgrade capstone python -m pip install --upgrade unicorn python -m pip install --upgrade keystone-engine python -m pip install --upgrade ropper python -m pip install --upgrade pygments python -m pip install --upgrade ropgadget ``` 8. 安装完成后,请将以下内容添加到您的`~/.gdbinit`文件中: ``` source /path/to/pwndbg/gdbinit.py ``` 请确保将上述路径替换为实际pwndbg目录的路径。 现在,您应该已经成功安装了pwndbg。您可以启动gdb并使用pwndbg调试器进行调试。 希望这可以帮助您在CentOS上安装pwndbg。如果您遇到任何问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值