Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
unifuzz-compiler
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
文周繁
unifuzz-compiler
Commits
10aa6e01
Commit
10aa6e01
authored
Jan 13, 2025
by
凌振
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
第三批
parent
e5c5d04c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
226 additions
and
0 deletions
+226
-0
第三批afl_fuzz_lingzhen.md
第三批afl_fuzz_lingzhen.md
+226
-0
第二批afl_fuzz.xlsx
第二批afl_fuzz.xlsx
+0
-0
No files found.
第三批afl_fuzz_lingzhen.md
0 → 100644
View file @
10aa6e01
# git
# git
## 信息
| 名称 | 版本 | 源码地址 |
| ---- | ---------- | ------------------------------ |
| git | 2.48.0-rc1 | https://github.com/git/git.git |
## 编译过程
```
shell
git clone https://github.com/git/git.git
cd
git
make configure
CC
=
/home/fuzz_dir/AFL/afl-gcc
CXX
=
/home/fuzz_dir/AFL/afl-g++ ./configure
make
```
## fuzz过程
```
shell
#diff命令 比较两个文件的不同
/home/fuzz_dir/AFL/afl-fuzz
-i
/home/fuzz_dir/AFL/testcases/others/text/
-o
./output
-m
2048
-t
2000
--
./git diff @@ ./sh/git_test_case.sh
```
# Gstreamer
## 信息
| 名称 | 版本 | 源码地址 |
| --------- | ------ | -------------------------------------- |
| Gstreamer | master | https://github.com/GStreamer/gstreamer |
## 编译过程
```
shell
#如果没有pip3 需要安装
apt install python3-pip
#安装meson
pip3 install
--user
meson
#安装ninja
apt install ninja-bulid
#安装依赖
git clone https://github.com/GStreamer/gstreamer
cd
gstreamer
meson setup builddir //下载可能失败,多尝试几次
meson compile
-C
builddir
```
## fuzz过程
```
shell
#创建所需文件夹
cd
gstreamer
mkdir work
#工作文件夹
mkdir out
#目标与语料库
mkdir input
#输入种子文件夹
mkdir output
#afl-fuzz结果输出文件夹
#下载所需要的依赖库源码
cd
..
#gstreamer同级文件夹
#下载ogg
git clone https://github.com/xiph/ogg.git
git clone https://gitee.com/ttsu00/ogg.git
#国内源
#下载vorbis
git clone https://gitlab.xiph.org/xiph/vorbis.git
git clone https://gitee.com/ttsu00/vorbis.git
#国内源
#下载theora
git clone https://github.com/xiph/theora.git
git clone https://gitee.com/ttsu00/theora.git
#国内源
#单步执行脚本内容
#定义变量
export
SRC
=
~
#gstreamer所在文件夹 例如 export SRC=/home/lingzhen
export
OUT
=
~/gstreamer/output
#例如 export OUT=/home/lingzhen/gstreamer/out
export
WORK
=
~/gstreamer/work
#例如 export WORK=/home/lingzhen/gstreamer/work
export
CC
=
/home/fuzz_dir/AFL/afl-gcc
export
CXX
=
/home/fuzz_dir/AFL/afl-g++
rm
-rf
$WORK
/
*
rm
-rf
$OUT
/lib
$OUT
/
*
_seed_corpus.zip
PREFIX
=
$WORK
/prefix
mkdir
-p
$PREFIX
export
PKG_CONFIG
=
"
`
which pkg-config
`
--static"
export
PKG_CONFIG_PATH
=
$PREFIX
/lib/pkgconfig
export
PATH
=
$PREFIX
/bin:
$PATH
# Minimize gst-debug level/code
export
CFLAGS
=
"
$CFLAGS
-DGST_LEVEL_MAX=2"
echo
"CFLAGS : "
$CFLAGS
echo
"CXXFLAGS : "
$CXXFLAGS
# Switch to work directory
cd
$WORK
mkdir
-p
$OUT
/lib/gstreamer-1.0
# build ogg
pushd
$SRC
/ogg
./autogen.sh
CC
=
/home/fuzz_dir/AFL/afl-gcc
CXX
=
/home/fuzz_dir/AFL/afl-g++ ./configure
--prefix
=
"
$PREFIX
"
--libdir
=
"
$PREFIX
/lib"
make clean
make
-j
$(
nproc
)
make install
popd
# build vorbis
pushd
$SRC
/vorbis
./autogen.sh
CC
=
/home/fuzz_dir/AFL/afl-gcc
CXX
=
/home/fuzz_dir/AFL/afl-g++ ./configure
--prefix
=
"
$PREFIX
"
--libdir
=
"
$PREFIX
/lib"
make clean
make
-j
$(
nproc
)
make install
popd
# build theora
pushd
$SRC
/theora
./autogen.sh
CC
=
/home/fuzz_dir/AFL/afl-gcc
CXX
=
/home/fuzz_dir/AFL/afl-g++ ./configure
--prefix
=
"
$PREFIX
"
--libdir
=
"
$PREFIX
/lib"
make clean
make
-j
$(
nproc
)
make install
popd
# For now we only build core and base. Add other modules when/if needed
meson
\
--prefix
=
$PREFIX
\
--libdir
=
lib
\
--default-library
=
shared
\
--force-fallback-for
=
zlib
\
-Db_lundef
=
false
\
-Doss_fuzz
=
enabled
\
-Dglib
:oss_fuzz
=
enabled
\
-Dglib
:libmount
=
disabled
\
-Dglib
:tests
=
false
\
-Ddoc
=
disabled
\
-Dexamples
=
disabled
\
-Dintrospection
=
disabled
\
-Dgood
=
disabled
\
-Dugly
=
disabled
\
-Dbad
=
disabled
\
-Dlibav
=
disabled
\
-Dges
=
disabled
\
-Dvaapi
=
disabled
\
-Dsharp
=
disabled
\
-Drs
=
disabled
\
-Dpython
=
disabled
\
-Dlibnice
=
disabled
\
-Ddevtools
=
disabled
\
-Drtsp_server
=
disabled
\
-Dgst-examples
=
disabled
\
-Dqt5
=
disabled
\
-Dorc
=
disabled
\
-Dgtk_doc
=
disabled
\
-Dgstreamer
:tracer_hooks
=
false
\
-Dgst-plugins-base
:opus
=
disabled
\
-Dgst-plugins-base
:pango
=
disabled
\
_builddir
\
$SRC
/gstreamer
ninja
-C
_builddir
ninja
-C
_builddir install
# 若提示patchelf命令不存在,安装patchelf命令sudo apt install patchelf
# copy out the fuzzing binaries
for
BINARY
in
$(
find _builddir/ci/fuzzing
-type
f
-executable
-print
)
do
BASENAME
=
${
BINARY
##*/
}
rm
-rf
"
$OUT
/
$BASENAME
*"
cp
$BINARY
$OUT
/
$BASENAME
patchelf
--set-rpath
'$ORIGIN/lib'
$OUT
/
$BASENAME
done
# 若提示zip命令不存在,安装patchelf命令sudo apt install zip
# copy any relevant corpus
for
CORPUS
in
$(
find
"
$SRC
/gstreamer/ci/fuzzing"
-type
f
-name
"*.corpus"
)
;
do
BASENAME
=
${
CORPUS
##*/
}
pushd
"
$SRC
/gstreamer"
zip
$OUT
/
${
BASENAME
%%.*
}
_seed_corpus.zip
.
-ws
-r
-i
@
$CORPUS
popd
done
# copy dependant libraries
find
"
$PREFIX
/lib"
-maxdepth
1
-type
f
-name
"*.so*"
-exec
cp
-d
"{}"
$OUT
/lib
\;
-print
# add rpath that point to the correct place to all shared libraries
find
"
$OUT
/lib"
-maxdepth
1
-type
f
-name
"*.so*"
-exec
patchelf
--debug
--set-rpath
'$ORIGIN'
{}
\;
find
"
$PREFIX
/lib"
-maxdepth
1
-type
l
-name
"*.so*"
-exec
cp
-d
"{}"
$OUT
/lib
\;
-print
find
"
$PREFIX
/lib/gstreamer-1.0"
-maxdepth
1
-type
f
-name
"*.so"
-exec
cp
-d
"{}"
$OUT
/lib/gstreamer-1.0
\;
find
"
$OUT
/lib/gstreamer-1.0"
-type
f
-name
"*.so*"
-exec
patchelf
--debug
--set-rpath
'$ORIGIN/..'
{}
\;
# make it easier to spot dependency issues
find
"
$OUT
/lib/gstreamer-1.0"
-maxdepth
1
-type
f
-name
"*.so"
-print
-exec
ldd
{}
\;
cp
$SRC
/gstreamer/ci/fuzzing/gst-discoverer.corpus
$SRC
/gstreamer/input
/home/fuzz_dir/AFL/afl-fuzz
-i
$SRC
/gstreamer/input/
-o
$SRC
/gstreamer/output/
$SRC
/gstreamer/out/gst-discoverer @@
```
## 7zip
## 信息
| 名称 | 版本 | 源码地址 |
| ---- | ----- | -------------------------------- |
| 7zip | 24.06 | https://github.com/ip7z/7zip.git |
## 编译过程
```
shell
git clone https://github.com/ip7z/7zip.git
cd
7zip
git switch 24.06
cd
./CPP/7zip/Bundles/Alone2
export
CC
=
/home/fuzz_dir/AFL/afl-gcc
export
CXX
=
/home/fuzz_dir/AFL/afl-g++
make
-j
-f
makefile.gcc
```
### fuzz过程
```
shell
/home/fuzz_dir/AFL/afl-fuzz
-i
/home/fuzz_dir/AFL/testcases/archives/common/zip/
-o
./output ./_o/7zz @@
```
第二批afl_fuzz.xlsx
View file @
10aa6e01
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment