iot rootkit 学习 lesson 8 IOT固件内部:工具链
概念
工具链
- 软件建设软件
- 由编译器、汇编程序、链接器和其他实用程序组成
- 包括本机和交叉工具链
ps:同一系统创建应用程序所需的工具集基本上被归类为本地工具链,使我们能够为其他平台和架构创建软件所需的工具集被称为交叉工具链。
工具链命名约定
——架构-供应商-内核-运行时间
例如:ARM-BUILDBOOT-linux-uclibcgnueabihf
- 架构:ARM
- 供应商:BUILDBOOT
- 内核/OS:linux
- 运行时间:uClibc(c库)+EABI(调用协定)+高频(硬浮动)激活窗口
我们将用到的是Crosstool-NG,因为它允许我们在工具链中构造我们需要的东西, 然后构建一个工具链本身
将embedded-linux.zip文件下载到ubuntu中,并解压
下载并安装 package.sh
下载并安装 environ.sh
step1:使用crosstool-NG创建一个工具链
step2:编译U-Boot
step3:编译内核、模块和DTB文件
step4:编译文件系统
step5:写入SD卡并启动设备步骤
step6:运行后门(用户的内核模式)
Crosstool-NG 创建工具链
使用crosstool-NG创建工具链的过程
- 下载并构建crosstool-NG
- 运行和配置:架构、操作系统、运行时库
- 用crosstool-NG构建你的自定义工具链
创建一个非常简单的自动化脚本
定位自定义工具链
创建一个完整的安装目录结构
可以看到ct-ng已经被创建
继续输入 ct-ng menuconfig 命令
将里面的内容改成如下所示
将里面的内容修改成如下所示
向下滚动
将数量改为8个,或者其他数量,这取决于你的电脑含有的CPU数量
Exit返回上一界面
选择arm
选择hardware(FPU)
Exit返回上一界面
Exit返回上一界面