CC="mips-linux-gnu-gcc" CXX="mips-linux-gnu-g++" ./configure --target=mips-linux-gnu --host="mips-linux-gnu" --prefix="/root/tgdb" LDFLAGS="-static" make make install
cd gdb-8.1 mkdir build cd build ../configure --target=arm-linux-gnueabihf --prefix=/opt/arm-gdb make -j8 sudo make install
在gdb/gdbserver下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
cd /gdb-8.1/gdb/gdbserver/ mkdir build cd build
../configure --target=arm-linux-gnueabihf LDFLAGS=-static make CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ CXXFLAGS="-std=c++11"
make install
如果出现错误:
1 2 3 4 5
In file included from ../common/common-defs.h:77:0, from ../defs.h:28, from ../gdb.c:19: ../common/common-types.h:35:10: fatal error: bfd.h: No such file or directory #include "bfd.h"
解决方法:sudo apt-get install binutils-dev
1 2 3 4 5 6
g++: error: version.c: No such file or directory g++: warning: ‘-x c++’ after last input file has no effect g++: fatal error: no input files compilation terminated. Makefile:1621: recipe for target 'version.o' failed make: *** [version.o] Error 1
cd gdb-8.1 mkdir build cd build ../configure --target=arm-linux-gnueabi --prefix=/opt/arm-gdb make -j8 sudo make install
在gdb/gdbserver下:
1 2 3 4 5 6 7 8 9 10 11 12
cd /gdb-8.1/gdb/gdbserver/ mkdir build cd build
../configure --target=arm-linux-gnueabi make CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ CXXFLAGS="-std=c++11"
make install
将gdbserver传到qemu虚拟机中
1
scp /usr/bin/gdbserver root@192.168.64.147:
在虚拟机中启动gdbserver: ``gdbserver :1234 typo’’
报错:
1 2 3
./gdbserver: /usr/lib/arm-linux-gnueabi/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by ./gdbserver) ./gdbserver: /usr/lib/arm-linux-gnueabi/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./gdbserver) ./gdbserver: /lib/arm-linux-gnueabi/libc.so.6: version `GLIBC_2.14' not found (required by ./gdbserver)
说明没有静态编译
使用:
qemu中:
1
./gdbserver 0.0.0.0:6666 \typo
宿主机中:
1 2 3
gdb-multiarch pwndbg>set arch arm pwndbg> target remote 192.168.64.147:6666