mips pwn环境搭建及记录

Posted on 2020-10-27  65 Views


环境准备

sudo apt-get install emdebian-archive-keyring 
sudo apt-get install linux-libc-dev-mips-cross 
sudo apt-get install libc6-mips-cross libc6-dev-mips-cross 
sudo apt-get install binutils-mips-linux-gnu gcc-mips-linux-gnu 
  • 安装完成后就可以编译 mips架构的binary了。
  • 编译时用
mips-linux-gnu-gcc code.c -o code 
  • 其实就是类似gcc啦!
  • 关于编译开启和关闭保护只要加下面参数就行。
NX:-z execstack / -z noexecstack (关闭 / 开启)
Canary:-fno-stack-protector /-fstack-protector / -fstack-protector-all (关闭 / 开启 / 全开启)
PIE:-no-pie / -pie (关闭 / 开启)
RELRO:-z norelro / -z lazy / -z now (关闭 / 部分开启 / 完全开启)

调试

  • mips默认是大端。调试的时候和arm差不多
qemu-mips -g PORT -L 链接库位置 BINARY  
  • 调试的时候 要设置架构,设置大小端
set architecture ARCH
set endian 大小端 #mips默认大端,x86,arm默认小端。
  • 在写exp的时候要注意把context.endian设置big。即大端,pwntools默认小端。