在linux下编译并以qemu user模式运行mips架构的文件

时间:2021-05-21 09:32:52   收藏:0   阅读:34

在linux下编译并以qemu user模式运行mips架构的文件

打完国赛初赛,水一篇博客

前述

QEMU是一个处理器模拟软件,可以用来在PC中模拟ARM、MIPS等多种架构的软硬件运行环境。QEMU主要有两种模拟模式:

QEMU功能强大,安装起来也很简单。在Ubuntu版本,只需要一条命令就可以把QEMU(本次博客涉及的安装文件)安装好.QEMU 其他架构的软件包这里没有涉及就没安装。

安装qemu-user模式

sudo apt install qemu-user

编译与运行

安装编译器:

sudo apt-get update
sudo apt-get install binutils-mipsel-linux-gnu
sudo apt-get install binutils-mips-linux-gnu
sudo apt-get install gcc-mipsel-linux-gnu
sudo apt install gcc-mips-linux-gnu 

写一个pwn题:

#include<stdio.h>
#include<stdlib.h>

void backdoor(){
    system("/bin/sh");
}

int main(){
    char buf[100];
    puts("Hello! Please input what you want to input!");
    read(0, buf, 0x100);
    puts("Good Bye!");
    return 0;
}

编译出mips小端程序,注意采用静态链接,否则运行时会提醒缺少库文件,那时需要用-L参数指定运行库的位置,比较麻烦,这里采用静态链接相对简单

mipsel-linux-gnu-gcc -static test.c -o test-mips-little

技术分享图片

编译出mips大端程序,同样采用静态链接:

mips-linux-gnu-gcc -static test.c -o test-mips-big

技术分享图片

运行:

qemu-mips ./test-mips-big

技术分享图片

qemu-mipsel ./test-mips-little

技术分享图片

其实编译运行arm程序也类似

首先要安装 arm-gcc,在 ubuntu 里可以直接 apt 安装。

sudo apt install gcc-arm-linux-gnueabi

安装好后就可以交叉编译 arm 程序了,注意用静态链接。

arm-linux-gnueabi-gcc -static test.c -o test-arm

技术分享图片

原文:https://www.cnblogs.com/p0lar1s/p/14792003.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!