运行与调试命令记录。
运行
首先安装环境包:
然后编译:
这样用 qemu 直接运行的话会报没有动态链接库:
$ qemu-arm-static ./hello
qemu-arm: Could not open '/lib/ld-linux-armhf.so.3': No such file or directory
这是因为我们的环境并不是 ARM,在安装 gcc-arm-linux-gnueabihf
的时候,相关的动态链接库其实安装到了 /usr/arm-linux-gnueabihf
下,所以我们可用这样运行:
其中 -L
指定了动态链接库的位置。
或者静态编译再用:
调试
调试也比较简单,qemu 提供了调试接口:
其中 -g
代表启动调试,在 1234 端口等待 gdb 的连接。
这样就可以用 gdb-multiarch 连上去了:
$ gdb-multiarch -q
...
pwndbg> target remote 127.0.0.1:1234
...