基于mt7621架构路由器编译auditord(生成ipk包)

在完成移动互联网安全第二次实验中,遇到了很多之前没有见过的问题,特此记录

实验环境

  • 路由器型号:Xiaomi R3G(mt7621)
  • Openwrt: 基于L大源码(R22.3.13)
  • 内核版本:5.4.175
  • Kali:21.04

准备工作

下载SDK环境

由于实验所用的auditord为源码,因此需要自行编译生成对应ipk包,再进行安装

SDK环境:是一个仿照真实Openwrt的完整编译环境

加入环境变量

在编译过程中我们需要使用交叉编译环境,才能在Kali中编译出可在Openwrt中运行的程序

vim $HOME/.bashrc
# 将SDK中staging_dir/toolchain/bin添加进环境变量中
# 保存环境变量并使其生效
source $HOME/.bashrc
# 确定环境变量生效
echo $PATH
mispel-openwrt-linux-gcc -v #有正常输出即为生效

基于mt7621架构路由器编译auditord(生成ipk包)_第1张图片

安装libubox和libuci库

在auditord中用到了libubox和libuci库,需要进行安装

# 声明所用的交叉编译器环境,保证可兼容
export CC=mispel-openwrt-linux-gcc

libubox库依赖json-c库,所以需要先安装:

$ git clone https://github.com/json-c/json-c.git
$ cd json-c/
$ ./autogen.sh
$ make
$ make install

安装libubox:

$ git clone http://git.openwrt.org/project/libubox.git
$ cd libubox
$ cmake -DBUILD_LUA=off
$ cmake CMakeLists.txt
$ make
$ make install
# /libubox/libubox.so

安装libuci:

git clone https://git.openwrt.org/project/uci.git uci
cd uci
cmake -DBUILD_LUA=off
cmake CMakeLists.txt
make
# /uci/libuci.so

将生成的libubox.so libubox.a和libuci.so libuci.a拷贝到toolchain/lib中备用
**注意:**一定要保证库所用的编译器与路由器的编译器相同,可以用file xxx.so 查看该库的编译环境
基于mt7621架构路由器编译auditord(生成ipk包)_第2张图片

编译auditord

将auditord文件夹复制到sdk/package中,返回sdk路径下。

make package/auditord/compile V=99

进行编译,编译结果auditord.ipk在sdk/bin/packages/misple/base

安装auditord

将ipk包发送到路由器中

scp auditord.ipk [email protected]:/tmp

# ssh路由器
cd /tmp
# auditord基于audit,因此需要先安装audit
opkg install audit
opkg install auditord.ipk

参考链接

  • OpenWrt上UCI库的环境搭建
  • OpenWrt编译系统(3)之深入探究库依赖错误:Package XXX is missing dependencies for the following libraries

你可能感兴趣的:(网络安全)