【破解教程】极路由器进阶教程:搭建交叉编译在路由器中运行自己的程序

本文最后更新于:2022年12月31日 下午

极路由器进阶教程:搭建交叉编译在路由器中运行自己的程序

准备工作

上一篇文章已经讲解了极路由器如何获取权限,永久开放ssh的22端口,并知道了极路由器的架构为MIPS架构。通过已知内容,我们开始搭建交叉编译工具链。

软件:

  1. Ubuntu或者其他Linux系统(我这里使用的是基于WSL的Ubuntu20.4)

  2. MIPS编译工具链一套(包含g++与gcc)

注:非常坑的是,极路由内的系统Hiwifi是基于openwrt的二次开发,普通的mips-linux-gun的交叉编译链生成的ELF执行文件在该系统下不可执行,并不被支持。所以要费一番功夫去手动编译openwrt系统然后手动提取,或者从网上找openwrt的系统工具包提取。

硬件:

  1. 电脑一台

  2. 被破解的极路由器一台

开始搭建

首先在ubuntu上安装一些东西

1
sudo apt-get install libncurses5-dev gawk flex build-essential qemu-user 

获取Openwrt的源代码

1
git clone git://git.openwrt.org/openwrt/openwrt.git 

编译源代码,默认配置即可,不需要勾选什么

1
2
3
cd openwrt

make menuconfig

编译,耗时特别长,可以忙些别的事情

1
nice make -j16 

一切无错的情况下,会在staging_dir目录下列出三个目录:

host

target-mips_34kc_uClibc-0.9.33.2

toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2

以上的安装过程时间太长,步骤太多。为此我直接提取出来toolchain文件,你们下载解压后,从这里开始执行一下步骤即可
提取版toolchain文件的下载地址:点我下载,因为在github上下载较慢,文件也不大,请耐心等待

将toolchain加到PATH里面

1
vi ~/.bashrc

按 i 键开始添加内容,将下面的内容添加到最后面。

1
2
export STAGING_DIR={你自己的安装路径(最好写成绝对路径)}OpenWrt/toolchain/bin/
export PATH=$STAGING_DIR/:$PATH

以上工作做好之后测试一下下,如下即为正常。

1
2
3
$ mipsel-openwrt-linux-gcc -v
Reading specs from /home/lsx/misp-openwrt/OpenWrt/toolchain/bin/../lib/gcc/mipsel-openwrt-linux-uclibc/4.8.3/specs
COLLECT_GCC=mipsel-openwrt-linux-uclibc-gcc.bin......省略................

测试

写一个最简单的hello world,命名test.cpp

1
2
3
4
5
6
7
#include <iostream>

int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}

然后使用交叉编译一下

1
mipsel-openwrt-linux-gcc test.cpp -o test

在该文件目录下就会生成一个可执行文件test

将该文件通过Sftp传入到极路由器中运行

1
2
3
4
5
#加权限
chmod +x test

#运行
./test

然后就能看到执行结果了。如图:

upload successful

PS: 不会用Sftp看我之前的博文。

下一篇文章,讲一下交叉编译tcpdump这个抓包工具。


【破解教程】极路由器进阶教程:搭建交叉编译在路由器中运行自己的程序
https://jinbilianshao.github.io/2022/12/10/【破解教程】极路由器进阶教程:搭建交叉编译在路由器中运行自己的程序/
作者
连思鑫
发布于
2022年12月10日
许可协议