神一样的工具们(1)—— Woboq

发布于 2020-06-18  56 次阅读


这是本系列的第一篇,主要用于介绍CTF中可能会使用到的一些好用但是相关资料很少的工具。话不多说,进入正题。

简介

Woboq是一个源代码浏览器,它可以让你很方便的浏览Glibc,Linux Kernel等存在复杂引用关系或者是数目繁多的宏的代码。我们将会以Glibc 2.30为例简单介绍它的使用方法。

使用方法

创建工作目录

mkdir ~/Workspace && cd ~/Workspace

安装Woboq

可以在https://woboq.com/codebrowser-download.html找到安装包进行下载。

克隆Woboq项目

git clone https://github.com/woboq/woboq_codebrowser.git

安装bear

项目地址 https://github.com/rizsotto/Bear.git,按说明安装即可

下载并编译glibc-2.30

(最好保证编译的libc版本和本地一致):

wget https://ftp.gnu.org/gnu/glibc/glibc-2.30.tar.gz
unar glibc-2.30.tar.gz
cd glibc-2.30
mkdir build && cd build
CFLAGS="-g -g3 -ggdb -gdwarf-4 -Og"                                 
CXXFLAGS="-g -g3 -ggdb -gdwarf-4 -Og"
../configure --prefix=/path/to/install  # 我们并不准备安装,这里prefix随便填
bear make

这时,glibc编译完毕,设置woboq所需的环境变量

mkdir ~/Workspace/woboq-out
OUTPUT_DIRECTORY=~/Workspace/woboq-out/glibc-2.30   # 生成文件的目录
DATA_DIRECTORY=$OUTPUT_DIRECTORY/../data        # js,css数据所在目录           
BUILD_DIRECTORY=$PWD                            # 当前目录
SOURCE_DIRECTORY=$PWD/../                       # 源代码目录
VERSION='2.30'                                  # 版本信息

生成woboq所需的文件

codebrowser_generator -b $BUILD_DIRECTORY -a -o $OUTPUT_DIRECTORY -p codebrowser:$SOURCE_DIRECTORY:$VERSION
codebrowser_indexgenerator $OUTPUT_DIRECTORY

接下来将woboq项目中提供的data目录拷贝到DATA_DIRECTORY所在位置即可

cd ~/Workspace
mkdir $DATA_DIRECTORY
cp ./woboq/data $DATA_DIRECTORY

设置服务器

在woboq-out目录下起一个http服务器,浏览器访问http://localhost:port/glibc-2.30/即可

python -m http.server port

效果图


Sinon想要一个npy