在完成移动互联网安全第二次实验中,遇到了很多之前没有见过的问题,特此记录
由于实验所用的auditord为源码,因此需要自行编译生成对应ipk包,再进行安装
SDK环境:是一个仿照真实Openwrt的完整编译环境
在编译过程中我们需要使用交叉编译环境,才能在Kali中编译出可在Openwrt中运行的程序
vim $HOME/.bashrc
# 将SDK中staging_dir/toolchain/bin添加进环境变量中
# 保存环境变量并使其生效
source $HOME/.bashrc
# 确定环境变量生效
echo $PATH
mispel-openwrt-linux-gcc -v #有正常输出即为生效
在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 查看该库的编译环境
将auditord文件夹复制到sdk/package中,返回sdk路径下。
make package/auditord/compile V=99
进行编译,编译结果auditord.ipk在sdk/bin/packages/misple/base
将ipk包发送到路由器中
scp auditord.ipk [email protected]:/tmp
# ssh路由器
cd /tmp
# auditord基于audit,因此需要先安装audit
opkg install audit
opkg install auditord.ipk