mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2024-11-26 15:32:05 +00:00
40c41d5110
- possible integer overflow in adjust_table_max_size: unsigned integer overflow: 2684354559 * 2 cannot be represented in type 'uint32' - limit max memory size in wasm_runtime_malloc - add more checks in aot loader - adjust compilation options |
||
---|---|---|
.. | ||
portal | ||
server | ||
workspace | ||
.env | ||
.gitignore | ||
CMakeLists.txt | ||
docker-compose.yml | ||
README.md | ||
smith_wasm.sh | ||
wasm_mutator_fuzz.cc |
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
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://<ip>: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
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