ubuntu 16.04 安装peach

当前操作系统:ubuntu 16.04

使用 TUNA 的软件源镜像替换sources.list
备份原sources.list文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo vim /etc/apt/sources.list,删除原有内容,输入以下内容

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

打开software-updater,勾选以下选项

执行以下命令

sudo apt update
sudo apt upgrade

安装依赖库

sudo apt update
sudo apt install -y \
     coreutils apt-utils wget curl openssl ca-certificates bash-completion \
     joe vim nano \
     unzip p7zip \
     fping hping3 httping thc-ipv6 gdb \
     tcpdump wireshark-common \
     locales-all \
     git build-essential joe vim strace tcpdump \
     ruby doxygen libxml2-utils less openjdk-8-jre xsltproc asciidoctor \
     nodejs node-typescript wget \
     apt-transport-https dirmngr gnupg ca-certificates apt-utils \
     cmake dos2unix

sudo apt install -y libglib2.0-dev libcairo2-dev
sudo apt install -y autoconf

如果提示以下错误
ubuntu16.04安装vim报错 vim : Depends: vim-common (= 2:7.4.052-1ubuntu3.1) but 2:7.4.1689-3ubuntu1.3
参考 https://blog.csdn.net/yzf279533105/article/details/105101275,执行以下命令

sudo apt-get purge vim-common
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim

安装mono6 (出处见该网页 https://www.mono-project.com/download/stable/#download-lin-ubuntu)
mono6用于编译peach

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo apt install apt-transport-https ca-certificates
echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

sudo apt install mono-devel

安装后查看版本

$mono -V
Mono JIT compiler version 6.12.0.182 (tarball Tue Jun 14 22:35:00 UTC 2022)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	Interpreter:   yes
	LLVM:          yes(610)
	Suspend:       hybrid
	GC:            sgen (concurrent by default)

下载peach

mkdir peach
cd peach
git clone https://gitlab.com/gitlab-org/security-products/protocol-fuzzer-ce.git
cd protocol-fuzzer-ce/3rdParty/pin
wget http://software.intel.com/sites/landingpage/pintool/downloads/pin-3.2-81205-gcc-linux.tar.gz
tar -xf pin-3.2-81205-gcc-linux.tar.gz

获取paket.bootstrapper.exe,paket.targets,paket.exe,Paket.Restore.targets
注意:由于github网站连接不稳定,wget https://github.com/... 的命令建议逐条执行,并确保每条命令执行成功

cd protocol-fuzzer-ce/paket/.paket
wget https://github.com/fsprojects/Paket/releases/download/5.258.1/paket.bootstrapper.exe
wget https://github.com/fsprojects/Paket/releases/download/5.258.1/paket.targets
wget https://github.com/fsprojects/Paket/releases/download/5.258.1/paket.exe
wget https://github.com/fsprojects/Paket/releases/download/5.258.1/Paket.Restore.targets

执行ls查看是否成功获取以下文件

paket.bootstrapper.exe,paket.targets,paket.exe,Paket.Restore.targets

下载pin-3.19-98425-gd666b2bee-gcc-linux.tar.gz
https://software.intel.com/sites/landingpage/pintool/downloads/pin-3.19-98425-gd666b2bee-gcc-linux.tar.gz
解压

tar -zxvf pin-3.19-98425-gd666b2bee-gcc-linux.tar.gz

重命名

mv ./pin-3.19-98425-gd666b2bee-gcc-linux ./pin-3.19-98425-gcc-linux

移动pin-3.19-98425-gcc-linux到3rdParty/pin目录下

mv ./pin-3.19-98425-gcc-linux ./protocol-fuzzer-ce/3rdParty/pin

修改代码
当前commit(Merge branch 'pin3.19support' into 'main')下修改代码不完整,无法编译,需要修改代码。
core\BasicBlocks\bblocks.cpp增加STATIC_ASSERT定义

#define STATIC_ASSERT(expr) typedef char __static_assert[expr ? 1 : -1] __attribute__((__unused__));

peach configure,以下命令执行较慢,需要等待约1分钟后才会得到提示

cd protocol-fuzzer-ce/
python2 waf configure --buildtag=0.0.2

成功 linux_x86_64 : Available

Configuring variant linux_x86            : Not Available - Cross compilation failed
Configuring variant linux_x86_64         : Available
Configuring variant win_x86              : Not Available - Unsupported build host
Configuring variant win_x64              : Not Available - Unsupported build host
Configuring variant osx                  : Not Available - Unsupported build host
Configuring variant doc                  : Available - Missing Features: asciidoctor-pdf,webhelp
'configure' finished successfully (36.764s)

build Peach

python2 waf build

build成功后会提示成功

'build' finished successfully (1m28.530s)

mono 卸载mono6

sudo apt-get autoremove mono-devel -y

编译安装mono4.8.1

wget https://download.mono-project.com/sources/mono/mono-4.8.1.0.tar.bz2
tar -jxvf mono-4.8.1.0.tar.bz2
cd mono-4.8.1

按照README.md操作

./autogen.sh
make get-monolite-latest
sudo make
sudo make install

检查mono版本

mono -V
Mono JIT compiler version 4.8.1 (Stable 4.8.1.0/22a39d7 2021年 07月 14日 星期三 14:30:01 CST)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen

安装Peach

cd protocol-fuzzer-ce
python2 waf install

最后会提示成功

'install' finished successfully (9.800s)

运行peach

退出protocol-fuzzer-ce路径,进入到peach路径
cd ..

例如在peach路径下创建peach_linux,将./peach/protocol-fuzzer-ce/output/linux_x86_64_debug/bin/路径下所有内容拷贝到peach_linux路径

mkdir ./peach_linux
cd ./peach_linux
cp ./peach/protocol-fuzzer-ce/output/linux_x86_64_debug/bin/* -R .
./peach_linux$ ./peach
posted @ 2022-07-27 10:47  BruceWayne09  阅读(598)  评论(0)    收藏  举报