dependency

module
v0.0.0-...-898e8b5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2022 License: GPL-3.0

README

2018-Dependency

build llvm

wget http://releases.llvm.org/7.0.0/llvm-7.0.0.src.tar.xz
tar -xf llvm-7.0.0.src.tar.xz
wget http://releases.llvm.org/7.0.0/cfe-7.0.0.src.tar.xz
tar -xf cfe-7.0.0.src.tar.xz
mv cfe-7.0.0.src llvm-7.0.0.src/tools/clang
mkdir llvm
cd llvm
cmake -G "Unix Makefiles" -DLLVM_ENABLE_RTTI=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/yhao016/data/18-Dependency/install/ ../llvm-7.0.0.src/
make -j16
make install

Install Protocol Buffers C++

notice: remove the default protobuf and install new!

sudo apt -y install autoconf automake libtool curl make g++ unzip
git clone https://github.com/protocolbuffers/protobuf
cd protobuf
git checkout tags/v3.11.0
git submodule update --init --recursive
./autogen.sh
./configure --prefix=/home/yhao016/data/18-Dependency/install  --disable-shared
make -j12
make install
sudo ldconfig

Install gRPC C++

sudo apt -y install build-essential autoconf libtool pkg-config libgflags-dev libgtest-dev libc++-dev
git clone -b v1.25.0 https://github.com/grpc/grpc
cd grpc
git submodule update --init --recursive
make HAS_SYSTEM_PROTOBUF=false -j12
make install prefix=/home/yhao016/data/18-Dependency/install
sudo ldconfig

build 2018-Dependency

git clone git@github.com:ZHYfeng/2018-Dependency.git
cd 2018-Dependency
bash build.bash

notice: change LLVM_DIR to your path. The binary is in build/tools/DRA/dra.

run build/tools/DRA/dra --help get the usage.

build syzkaller

install go
wget https://dl.google.com/go/go1.12.6.linux-amd64.tar.gz
tar -xf go1.12.6.linux-amd64.tar.gz
mv go goroot
export GOROOT=`pwd`/goroot
export PATH=$GOROOT/bin:$PATH
mkdir gopath
export GOPATH=`pwd`/gopath
install protobuf and grpc
go get -u github.com/golang/protobuf/protoc-gen-go
go get -u google.golang.org/grpc
install syzkaller
git clone git@github.com:ZHYfeng/2019_syzkaller.git
mv 2019_syzkaller gopath/src/github.com/google/syzkaller/
cd gopath/src/github.com/google/syzkaller/
mkdir workdir
cd ./pkg/dra
./build-protoc.sh
cd ../..
make
cd workdir

how to use

The path of Linux kernel: /home/yuh/data/benchmark/linux.

12-=linux-clang-np/ is the Linux kernel built with clang. 15-linux-clang-np-bc-f/ is 12-linux-clang-np/ with bc file.

13-linux-clang-np/ is the Linux kernel with new driver. 16-linux-clang-np-bc-f/ is 13-linux-clang-np/ with bc file.

~/data/git/gopath/src/github.com/ZHYfeng/2018-Dependency/02-dependency/cmake-build-debug/tools/A2I/a2i -objdump=/home/yhao016/data/2018-Dependency/13-linux-clang-np/vmlinux.objdump

Directories

Path Synopsis
03-syzkaller
dashboard/dashapi
Package dashapi defines data structures used in dashboard communication and provides client interface.
Package dashapi defines data structures used in dashboard communication and provides client interface.
pkg/ast
Package ast parses and formats sys files.
Package ast parses and formats sys files.
pkg/build
Package build contains helper functions for building kernels/images.
Package build contains helper functions for building kernels/images.
pkg/compiler
Package compiler generates sys descriptions of syscalls, types and resources from textual descriptions.
Package compiler generates sys descriptions of syscalls, types and resources from textual descriptions.
pkg/cover
Package cover provides types for working with coverage information (arrays of covered PCs).
Package cover provides types for working with coverage information (arrays of covered PCs).
pkg/csource
Package csource generates [almost] equivalent C programs from syzkaller programs.
Package csource generates [almost] equivalent C programs from syzkaller programs.
pkg/db
Package db implements a simple key-value database.
Package db implements a simple key-value database.
pkg/gce
Package gce provides wrappers around Google Compute Engine (GCE) APIs.
Package gce provides wrappers around Google Compute Engine (GCE) APIs.
pkg/gcs
Package gcs provides wrappers around Google Cloud Storage (GCS) APIs.
Package gcs provides wrappers around Google Cloud Storage (GCS) APIs.
pkg/ifuzz
Package ifuzz allows to generate and mutate x86 machine code.
Package ifuzz allows to generate and mutate x86 machine code.
pkg/ifuzz/gen command
gen generates instruction tables (ifuzz/insns.go) from Intel XED tables.
gen generates instruction tables (ifuzz/insns.go) from Intel XED tables.
pkg/instance
Package instance provides helper functions for creation of temporal instances used for testing of images, patches and bisection.
Package instance provides helper functions for creation of temporal instances used for testing of images, patches and bisection.
pkg/kd
Minimal KD protocol decoder.
Minimal KD protocol decoder.
pkg/log
Package log provides functionality similar to standard log package with some extensions: - verbosity levels - global verbosity setting that can be used by multiple packages - ability to disable all output - ability to cache recent output in memory
Package log provides functionality similar to standard log package with some extensions: - verbosity levels - global verbosity setting that can be used by multiple packages - ability to disable all output - ability to cache recent output in memory
pkg/report
Package report contains functions that process kernel output, detect/extract crash messages, symbolize them, etc.
Package report contains functions that process kernel output, detect/extract crash messages, symbolize them, etc.
pkg/rpctype
Package rpctype contains types of message passed via net/rpc connections between various parts of the system.
Package rpctype contains types of message passed via net/rpc connections between various parts of the system.
pkg/runtest
Package runtest is a driver for end-to-end testing of syzkaller programs.
Package runtest is a driver for end-to-end testing of syzkaller programs.
pkg/signal
Package signal provides types for working with feedback signal.
Package signal provides types for working with feedback signal.
pkg/vcs
Package vcs provides helper functions for working with various repositories (e.g.
Package vcs provides helper functions for working with various repositories (e.g.
sys
sys/akaros/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
sys/freebsd/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
sys/fuchsia/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
sys/linux/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
sys/netbsd/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
sys/openbsd/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
sys/syz-extract command
sys/syz-sysgen command
sys/test/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
sys/trusty/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
sys/windows/gen
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
AUTOGENERATED FILE This file is needed if OS is completely excluded by build tags.
syz-ci command
syz-ci is a continuous fuzzing system for syzkaller.
syz-ci is a continuous fuzzing system for syzkaller.
syz-fuzzer command
syz-hub command
syz-manager command
tools/syz-benchcmp command
syz-benchcmp visualizes syz-manager benchmarking results.
syz-benchcmp visualizes syz-manager benchmarking results.
tools/syz-cover command
syz-cover generates coverage HTML report from raw coverage files.
syz-cover generates coverage HTML report from raw coverage files.
tools/syz-crush command
syz-crush replays crash log on multiple VMs.
syz-crush replays crash log on multiple VMs.
tools/syz-db command
tools/syz-env command
tools/syz-execprog command
execprog executes a single program or a set of programs and optionally prints information about execution.
execprog executes a single program or a set of programs and optionally prints information about execution.
tools/syz-fmt command
syz-fmt re-formats sys files into standard form.
syz-fmt re-formats sys files into standard form.
tools/syz-imagegen command
imagegen generates syz_mount_image/syz_read_part_table calls from disk images.
imagegen generates syz_mount_image/syz_read_part_table calls from disk images.
tools/syz-mutate command
mutates mutates a given program and prints result.
mutates mutates a given program and prints result.
tools/syz-repro command
tools/syz-runtest command
Runtest runs syzkaller test programs in sys/*/test/*.
Runtest runs syzkaller test programs in sys/*/test/*.
tools/syz-testbuild command
syz-testbuild tests kernel build/boot on releases as it will be done by pkg/bisect.
syz-testbuild tests kernel build/boot on releases as it will be done by pkg/bisect.
tools/syz-trace2syz command
syz-trace2syz converts strace traces to syzkaller programs.
syz-trace2syz converts strace traces to syzkaller programs.
nolint
tools/syz-tty command
syz-tty is utility for testing of usb console reading code.
syz-tty is utility for testing of usb console reading code.
tools/syz-upgrade command
upgrade upgrades corpus from an old format to a new format.
upgrade upgrades corpus from an old format to a new format.
vm
Package vm provides an abstract test machine (VM, physical machine, etc) interface for the rest of the system.
Package vm provides an abstract test machine (VM, physical machine, etc) interface for the rest of the system.
vm/gce
Package gce allows to use Google Compute Engine (GCE) virtual machines as VMs.
Package gce allows to use Google Compute Engine (GCE) virtual machines as VMs.
vm/gvisor
Package gvisor provides support for gVisor, user-space kernel, testing.
Package gvisor provides support for gVisor, user-space kernel, testing.
vm/kvm
Package kvm provides VMs based on lkvm (kvmtool) virtualization.
Package kvm provides VMs based on lkvm (kvmtool) virtualization.
vm/vmimpl
Package vmimpl provides an abstract test machine (VM, physical machine, etc) interface for the rest of the system.
Package vmimpl provides an abstract test machine (VM, physical machine, etc) interface for the rest of the system.
vm/vmm
Package vmm provides VMs based on OpenBSD vmm virtualization.
Package vmm provides VMs based on OpenBSD vmm virtualization.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL