# 베이스 이미지로 Ubuntu 사용
FROM ubuntu:20.04
# 필수 패키지 설치
RUN apt-get update && apt update -y
RUN apt install build-essential gcc python3-dev automake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools wget lld-12 llvm-12 llvm-12-dev clang-12 -y
RUN apt install gcc-$(gcc --version|head -n1|sed 's/.* //'|sed 's/\..*//')-plugin-dev libstdc++-$(gcc --version|head -n1|sed 's/.* //'|sed 's/\..*//')-dev -y
RUN apt-get clean
# 작업 디렉토리 생성
RUN mkdir /fuzzing_xpdf
# xpdf 다운로드 및 압축 해제
WORKDIR /fuzzing_xpdf
RUN wget https://dl.xpdfreader.com/old/xpdf-3.02.tar.gz \
&& tar -xvzf xpdf-3.02.tar.gz
# AFL++ 클론 및 설치
RUN git clone https://github.com/AFLplusplus/AFLplusplus && cd AFLplusplus \
&& export LLVM_CONFIG="llvm-config-12" \
&& make distrib \
&& make install
# 환경 변수 설정
ENV LLVM_CONFIG="llvm-config-12"
ENV PATH="/aflplusplus:$PATH"
# AFL++ 컴파일러를 이용한 컴파일 환경 설정
WORKDIR /fuzzing_xpdf/xpdf-3.02
RUN export CC=/aflplusplus/afl-clang-fast \
&& export CXX=/aflplusplus/afl-clang-fast++ \
&& ./configure --prefix="/fuzzing_xpdf/install/"
# xpdf 컴파일 및 설치
RUN make && make install
# PDF 예제 파일 다운로드
RUN mkdir /fuzzing_xpdf/pdf_examples
WORKDIR /fuzzing_xpdf/pdf_examples
RUN wget https://github.com/mozilla/pdf.js-sample-files/raw/master/helloworld.pdf \
&& wget https://www.melbpc.org.au/wp-content/uploads/2017/10/small-example-pdf-file.pdf
# 디폴트 명령어 설정
CMD ["bash"]
docker build -t fuzzing_xpdf .
docker run -it fuzzing_xpdf
'Configuration' 카테고리의 다른 글
Ubuntu LLVM 설치 및 버전확인 방법 (export LLVM_CONFIG) (1) | 2024.02.10 |
---|---|
sudo시에 E: Could not get lock /var/lib/dpkg/lock-frontend 해결 (2) | 2023.11.22 |
v8 engine Fuzzing을 위한 v8 컴파일 및 Fuzzilli Configuration (0) | 2022.09.03 |
우리 도커 이상한 애 아니다. (도커 사용법 / Docker file / Docker image / Docker container 와의 관계) (0) | 2022.03.06 |
그러니까 도커는.. (docker create/start/run/stop/rm/exec) (0) | 2022.03.06 |