TianlongLiang 7d56289fab Exclude fuzz test python and npm packages in scoreboard scan (#3871) 1 an în urmă
..
portal 7d56289fab Exclude fuzz test python and npm packages in scoreboard scan (#3871) 1 an în urmă
server 7d56289fab Exclude fuzz test python and npm packages in scoreboard scan (#3871) 1 an în urmă
workspace 67638e24f4 wasm-mutator-fuzz: Generate more kinds of corpus (#3487) 1 an în urmă
.env a2f3c7298f Add wasm-mutator-fuzz test (#3420) 1 an în urmă
.gitignore a2f3c7298f Add wasm-mutator-fuzz test (#3420) 1 an în urmă
CMakeLists.txt 0d9cea434c wasm-mutator-fuzz: Set compilers earlier (#3585) 1 an în urmă
README.md a2f3c7298f Add wasm-mutator-fuzz test (#3420) 1 an în urmă
docker-compose.yml a2f3c7298f Add wasm-mutator-fuzz test (#3420) 1 an în urmă
smith_wasm.sh 67638e24f4 wasm-mutator-fuzz: Generate more kinds of corpus (#3487) 1 an în urmă
wasm_mutator_fuzz.cc a2f3c7298f Add wasm-mutator-fuzz test (#3420) 1 an în urmă

README.md

WAMR fuzz test framework

install wasm-tools

1.git clone https://github.com/bytecodealliance/wasm-tools
$ cd wasm-tools
2.This project can be installed and compiled from source with this Cargo command:
$ cargo install wasm-tools
3.Installation can be confirmed with:
$ wasm-tools --version
4.Subcommands can be explored with:
$ wasm-tools help

Build

mkdir build && cd build
# Without custom mutator (libfuzzer modify the buffer randomly)
cmake ..
# With custom mutator (wasm-tools mutate)
cmake .. -DCUSTOM_MUTATOR=1
make -j$(nproc)

Manually generate wasm file in build

# wasm-tools smith generate some valid wasm file
# The generated wasm file is in corpus_dir under build
# N - Number of files to be generated
./smith_wasm.sh N 

# running

bash cd build ./wasm-mutate-fuzz CORPUS_DIR


## Fuzzing Server

shell

  1. Installation Dependent Environment $ cd server $ pip install -r requirements.txt

  2. Database Migration $ python3 app/manager.py db init $ python3 app/manager.py db migrate
    $ python3 app/manager.py db upgrade

  3. Change localhost to your machine's IP address $ cd ../portal $ vim .env # Change localhost to your machine's IP address # http://:16667

  4. Run Server and Portal $ cd .. # Switch to the original directory If you want to customize the front-end deployment port: # defaut 9999 $ vim .env # Please change the portal_port to the port you want to use

  5. The server is deployed on port 16667 by default, If you want to change the server deployment port:

    $ vim .env # Please change the server_port to the port you want to use 
    $ vim portal/.env # Please change the VITE_SERVER_URL to the port you want to use  # http://ip:<port>
    

    If your network needs to set up a proxy

    $ vim .env # Change proxy to your proxy address
    

    $ docker-compose up --build -d Wait for completion, Access the port set by env ```