MCPcopy Create free account
hub / github.com/crabnebula-dev/tauri-fuzz

github.com/crabnebula-dev/tauri-fuzz @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
218 symbols 494 edges 64 files ⚖ custom 66 documented · 30% updated 19mo ago★ 582 open issues

Browse by type

Functions 203 Types & classes 15
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Tauri-fuzz

This is a runtime environment to use when fuzzing. This runtime is specialized in detecting security boundaries violations in applications.

The project

What is a fuzzer

A fuzzer is an automatic testing tool commonly used for software. The goal is to test your software by executing it with a large set of pseudo-randomly generated inputs.

What's special about this fuzz runtime

Most fuzzers are dedicated to find memory bugs in C libraries. In our case we focus on security issues in applications. Specifically we check that applications can't break their assumed security boundaries.

Fuzzing applications security boundaries

Examples of cases where the runtime is relevant

In general the runtime is useful to check the security boundaries of an application:

For example:

  • an app should have no or limited access to the file system
  • an app has access to the shell but we want to make sure that it cannot be abused
  • an app should not make any remote connection except to specified servers (TODO)

Summary

  • Specializes in testing applications security boundaries
  • Target code is fuzzed against a security policy
  • Several default policies are provided
  • Users can provide custom policies
  • Cross-platform fuzzing
  • Built on top of and Frida
  • Coupled to LibAFL for state of the art fuzzing
  • Portable on Windows, MacOS, Android, iOS (TODO)

Documentation

Technical documentation, research and thoughts process that happened during the development of this project are documented in the mdbook in docs.

Requires mdbook and mdbook-toc

$ cargo install mdbook
$ cargo install mdbook-toc

Repository Architecture

  • crates/tauri-fuzz-cli a cli to initialize fuzzing in a project
  • crates/tauri-fuzz the runtime used while fuzzing
  • crates/tauri-fuzz-policies the security policies and the policy engine that will be used while fuzzing
  • docs/ technical information and thoughts process behind the project
  • examples/ examples to run the fuzzer on
  • tests/ tests

Supported platforms

Platform Can theoretically work Tested on
Linux
Windows
MacOS
Android
iOS

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Function 181
Method 22
Class 10
Enum 4
Interface 1

Languages

Rust99%
TypeScript1%

Modules by API surface

crates/tauri-fuzz/src/runtime/func_call_listener_rt.rs24 symbols
tests/fuzz-mini-app/tests/mini_app_commands_tests/ls_with_rust_command_tests.rs20 symbols
crates/tauri-fuzz/src/tauri/utils.rs13 symbols
crates/tauri-fuzz-policies/src/policies/external_process.rs12 symbols
crates/tauri-fuzz-policies/src/engine.rs11 symbols
tests/fuzz-mini-app/tests/mini_app_commands_tests/write_foo_file_tests.rs9 symbols
tests/fuzz-mini-app/src/utils.rs9 symbols
crates/tauri-fuzz-policies/src/policies/filesystem.rs9 symbols
tests/fuzz-mini-app/tests/mini_app_commands_tests/read_foo_file_tests.rs6 symbols
tests/fuzz-mini-app/tests/mini_app_commands_tests/fs_readFile_tests.rs6 symbols
crates/tauri-fuzz-cli/src/main.rs6 symbols
examples/mini-app/src-tauri/src/tauri_commands/external_process.rs5 symbols

Datastores touched

(mysql)Database · 1 repos
SchoolDatabaseDatabase · 1 repos

For agents

$ claude mcp add tauri-fuzz \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page