3、基础工具链安装:Git、Build-essential、CMake、Python3-pip、Vim/VS Code的安装与配置
说实话,搞思科固件逆向,工具链就是你的枪。枪不好使,上了战场就得抓瞎。我见过太多新手,上来就搞高大上的IDA Pro,结果连个Git都没配好,代码版本乱成一锅粥。今天咱们就把这几把「基础枪」擦亮。
3.1 Git:版本控制的命根子
Git这东西,说白了就是后悔药。你改坏了代码?回滚。你搞丢了patch?找回。我在逆向一个Cisco IOS的漏洞时,反复修改了十几个版本的patch脚本,要不是Git管着,早疯了。
安装命令(Ubuntu/Debian系):
sudo apt update
sudo apt install git -y
git --version
装完第一件事,配身份。不然commit的时候会报错:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global core.editor "vim"
git lg 看日志,比默认的log好看十倍。命令:git config --global alias.lg "log --oneline --graph --all"
3.2 Build-essential:编译器的全家桶
逆向工程里,你经常需要自己编译一些工具。比如binutils、GDB的某些插件。Build-essential这个包,把gcc、g++、make这些核心编译工具一次性给你装好。
安装:
sudo apt install build-essential -y
gcc --version
make --version
我曾经在编译一个MIPS交叉工具链时,发现系统缺了libc-dev,折腾了半天。后来学乖了,直接装build-essential,省心。
sudo apt install manpages-dev,不然有些头文件找不到。
3.3 CMake:跨平台构建的瑞士军刀
CMake不是必须的,但有了它,你编译那些大型项目(比如QEMU、Ghidra的某些插件)会舒服很多。它自动检测你的编译器、库路径,生成Makefile。
安装:
sudo apt install cmake -y
cmake --version
装完我建议你配一下默认的构建类型:
export CMAKE_BUILD_TYPE=Release
嗯,这里要注意。如果你在调试自己的逆向工具,记得改成Debug,不然符号表被优化掉了,你哭都来不及。
3.4 Python3-pip:脚本党的弹药库
逆向思科固件,Python是主力语言。你想想看,解析二进制、写exploit、自动化分析,哪个离得开Python?pip就是装第三方库的工具。
安装:
sudo apt install python3 python3-pip -y
python3 --version
pip3 --version
装完立刻升级pip,不然装某些库会报错:
pip3 install --upgrade pip
pip3 install capstone—— 反汇编引擎,解析MIPS/ARM指令必备pip3 install pyelftools—— 解析ELF文件结构pip3 install requests—— 下载固件时用
我建议你建一个虚拟环境,别把系统Python搞乱了:
python3 -m venv cisco_re
source cisco_re/bin/activate
3.5 Vim / VS Code:编辑器之争
编辑器这东西,没有最好的,只有最顺手的。我本人是Vim党,但我也理解有人喜欢VS Code的图形界面。
Vim安装与配置:
sudo apt install vim -y
我的.vimrc里必配这几行:
syntax on
set number
set tabstop=4
set shiftwidth=4
set expandtab
为什么?因为思科的配置文件里,缩进全是空格。你设成tab,贴进去就乱码。
VS Code安装:
从官网下载.deb包,或者用snap:
sudo snap install code --classic
装完必装插件:
- Python(微软官方)
- C/C++(微软官方)
- Hex Editor —— 直接看二进制,不用切工具
- GitLens —— 看每一行是谁写的,方便甩锅(笑)
3.6 本章知识体系
下面这张图,帮你理清这些工具在逆向流程中的位置:
3.7 验证清单
装完别急着走。花两分钟跑一遍这个清单,确保每把枪都能响:
| 工具 | 验证命令 | 预期输出 |
|---|---|---|
| Git | git --version |
git version 2.x.x |
| GCC | gcc --version |
gcc (Ubuntu 11.x.x) ... |
| CMake | cmake --version |
cmake version 3.x.x |
| Python3 | python3 --version |
Python 3.x.x |
| pip3 | pip3 --version |
pip 2x.x.x from ... |
| Vim | vim --version |
VIM - Vi IMproved 8.x |
sudo apt install kitware-archive-keyring && sudo apt update && sudo apt install cmake
好了,工具链装好了。下一章咱们就用这些工具,开始搞真正的逆向工程。记住,工具是死的,人是活的。多动手,少看教程,才是正道。
公众号:蓝海资料掘金营,微信deep3321