CVE-2018-5146 复现的准备工作——ogg格式解析工具ogginfo项目编译

0x00项目下载

ogg项目地址

libogg tools github项目地址

ogg项目里选择libogg和libvorbis下载,这是编译ogginfo需要的库:

libogg tools github项目 一定要用github的版本,不要在ogg项目里下载。
直接clone

git clone https://github.com/xiph/vorbis-tools

下好这个三个包之后,按照顺序依次编译,因为依次依赖。

0x01 编译 libogg

解压libogg之后进入如下目录

分别选择 libogg_dynamic.sln和libogg_static.sln 进行编译
编译的结果如下

0x02 编译 libvorbis

解压libvorbis之后进入如下目录

我们仍然要对dynamic.sln和static.sln 进行编译

0x02_00首先编译 static.sln

但是直接编译会报错

则需要补头文件 ogg/ogg.h 是上一个项目libogg里面的

把里面的 ogg 文件整个放到 libvorbis项目的如下目录

接着还要修改 libvorbis项目关于 ogg头文件的引用
对libvorbisfile项目->属性

接着 C/C++ ->常规->附加包含目录->编辑

修改为如下内容

然后 确定->应用 开始编译

dynamic.sln和static.sln 进行编译

编译完成

0x02_01接下来编译 dynamic.sln

还是和static.sln 一样修改 ogg头文件的引用

然后开始编译 ,失败显示缺 libogg_static.lib

补 libogg_static.lib,把 libogg 项目里编译好的libogg_static.lib
复制到 libvorbis项目里 libvorbis和libvorbisfile文件夹下



开始编译,编译成功

0x03 编译 ogginfo

解压vorbis-tools-master之后进入如下目录,加载vorbis-tools.sln

设置ogginfo 为启动项,然后开始编译

编译失败

则和上面一样先补包

改对库文件的引用目录,发现对vorbis库也有引用,则也一并补了,并修改其引用目录



接着编译报错

把我们之前编译的好的libogg.lib 移动到ogginfo项目下来

继续编译 报错

把我们之前编译的好的libogg.lib 移动到ogginfo项目下来

编译! 报错 缺两个dll

接着把这两个dll 拷贝过来



编译 成功