获取
docker pull skysider/multiarch-docker:compile
官方使用说明文档https://github.com/skysider/multiarch-docker
构建容器方法
docker run -it --rm -h iot --name iot -v /c/Users/36205/Documents/work:/work/ctf -p 1000:1000 --cap-add=SYS_PTRACE skysider/multiarch-docker:compile tmux
命令解析
-it
表示指定运行的终端,这里指定为tmux
--rm
表示当退出的时候删掉这个容器
-h
指定创建的容器的主机名
--name
指定容器名
-v
本地文件和远程文件映射/c/Users/36205/Documents/work
在windows环境下的C:\Users\36205\Documents\work
,映射之后主机上的文件在容器里面显示,可修改
-p
容器端口和主机端口的映射
--cap-add=SYS_PTRACE
调试要用,没有这个选项可能不能弹出调试器
支持的内核
mipsel
mips64el
mips
mips64
armel(armhf)
aarch64
交叉编译测试
cat > test.c <<EOF
#include <stdio.h>
int main()
{
puts("hello world");
return 0;
}
EOF
mips-linux-gnu-gcc test.c -o test-mips
调试示例
socat TCP-LISTEN:2333,reuseaddr,fork EXEC:"qemu-mips -g 1234 ./demo"
qemu-mips -strace ./demo
gdb-multiarch ./demo
(gdb)set arch mips
(gdb)set endian big
(gdb)target remote localhost:1234
具体调试方法参考下一篇