Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
a7b19fa
Initial split [WIP]
domenukk Jul 11, 2025
c1b74f6
on avance toujours
domenukk Jul 11, 2025
329182d
More more
domenukk Jul 11, 2025
936c286
mas
domenukk Jul 11, 2025
eade0cd
mas
domenukk Jul 12, 2025
14be25c
Still more
domenukk Jul 14, 2025
d3da7c0
Merge branch 'bolts_split' of github.com:AFLplusplus/LibAFL into bolt…
domenukk Jul 14, 2025
6aa3f86
mroe fix
domenukk Jul 14, 2025
698e6d0
Move rust-toolchain file to toml
domenukk Jul 15, 2025
a0af822
Merge branch 'main' into bolts_split
domenukk Jul 15, 2025
52cb404
builds oO
domenukk Jul 15, 2025
84a4a91
fmt
domenukk Jul 15, 2025
1cea494
bring back unused features
domenukk Jul 15, 2025
ebc5fc0
no_std
domenukk Jul 15, 2025
b5c7a54
Merge branch 'main' into bolts_split
domenukk Jul 15, 2025
bee0bcc
remove once_cell
domenukk Jul 15, 2025
800d726
remove this stuff
domenukk Jul 15, 2025
c0cb420
more less std
domenukk Jul 15, 2025
95279ac
no_std
domenukk Jul 15, 2025
4788eb9
clippy
domenukk Jul 15, 2025
8fac1b1
Merge branch 'main' into bolts_split
domenukk Jul 25, 2025
f5b5f45
More work
domenukk Jul 25, 2025
4ac355d
Merge branch 'main' into bolts_split
domenukk Nov 5, 2025
9c44d20
fix
domenukk Nov 5, 2025
bc5b70f
fix
domenukk Nov 5, 2025
11a9f5b
make things build again
domenukk Nov 5, 2025
300d072
Merge branch 'main' into bolts_split
domenukk Nov 5, 2025
6ee05b8
Merge branch 'main' into bolts_split
domenukk Nov 10, 2025
7237c57
Merge branch 'main' into bolts_split
domenukk Nov 10, 2025
9bbeadc
Fixes all around
domenukk Nov 10, 2025
58c8bc3
more more fix
domenukk Nov 10, 2025
8435cfd
things
domenukk Nov 10, 2025
cd7638c
Moar fix
domenukk Nov 10, 2025
f115bbd
Merge branch 'main' into bolts_split
domenukk Nov 10, 2025
22650ca
more fix, just fix
domenukk Nov 11, 2025
f1aad9a
Added vibe-coded readmes
domenukk Nov 11, 2025
20ee76a
more doc
domenukk Nov 11, 2025
85fed35
more read
domenukk Nov 11, 2025
aa49a62
more cleanup
domenukk Nov 11, 2025
9d4cd5d
more more more (she cried)
domenukk Nov 11, 2025
b11f3c5
oof hole of worms
domenukk Nov 11, 2025
e9dd941
more stuff
domenukk Nov 11, 2025
77677fe
fixes
domenukk Nov 11, 2025
5b6bff9
more fun
domenukk Nov 11, 2025
8d2927f
more
domenukk Nov 11, 2025
214178c
more
domenukk Nov 11, 2025
b52bfda
more fmt
domenukk Nov 11, 2025
e7ed248
alloc
domenukk Nov 11, 2025
e317db1
more fun
domenukk Nov 11, 2025
5dddace
more fix
domenukk Nov 11, 2025
2b78edb
more fix
domenukk Nov 12, 2025
81d9574
Merge branch 'main' into bolts_split
domenukk Nov 12, 2025
a23261e
clip
domenukk Nov 12, 2025
78cfa8a
fixes
domenukk Nov 12, 2025
cfc40c1
undo fmt
domenukk Nov 12, 2025
c995912
fmt
domenukk Nov 12, 2025
cb9ebb6
clip
domenukk Nov 12, 2025
81e3c44
Merge branch 'main' into bolts_split
domenukk Nov 12, 2025
1d46d55
Merge branch 'main' into bolts_split
domenukk Nov 12, 2025
b2a6901
0.16.0 let's go
domenukk Nov 12, 2025
6f2300a
update publish.sh
domenukk Nov 12, 2025
5d663f6
README
domenukk Nov 12, 2025
5d2b486
More readme
domenukk Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
335 changes: 271 additions & 64 deletions Cargo.lock

Large diffs are not rendered by default.

134 changes: 83 additions & 51 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,95 +1,122 @@
[workspace]
resolver = "2"
members = [
"crates/libafl",
"crates/build_id2",
"crates/core_affinity2",
"crates/exceptional",
"crates/fast_rands",
"crates/libafl_asan",
"crates/libafl_asan/libafl_asan_fuzz",
"crates/libafl_asan/libafl_asan_libc",
"crates/libafl_bolts",
"crates/libafl_cc",
"crates/libafl_concolic/symcc_runtime",
"crates/libafl_concolic/symcc_libafl",
"crates/libafl_concolic/symcc_runtime",
"crates/libafl_concolic/test/dump_constraints",
"crates/libafl_concolic/test/runtime_test",
"crates/libafl_core",
"crates/libafl_derive",
"crates/libafl_frida",
"crates/libafl_intelpt",
"crates/libafl_libfuzzer",
"crates/libafl_nyx",
"crates/libafl_unicorn",
"crates/libafl_targets",
"crates/libafl_tinyinst",
"crates/libafl_qemu",
"crates/libafl_qemu/libafl_qemu_build",
"crates/libafl_qemu/libafl_qemu_runner",
"crates/libafl_qemu/libafl_qemu_sys",
"crates/libafl_qemu/libvharness_sys",
"crates/libafl_sugar",
"crates/libafl_concolic/test/dump_constraints",
"crates/libafl_concolic/test/runtime_test",
"crates/libafl_targets",
"crates/libafl_tinyinst",
"crates/libafl_unicorn",
"crates/libafl",
"crates/ll_mp",
"crates/minibsod",
"crates/no_std_time",
"crates/ownedref",
"crates/serde_anymap",
"crates/shmem_providers",
"crates/tuple_list_ex",
"utils/build_and_test_fuzzers",
"utils/ci_runner",
"utils/ci_splitter",
"utils/deexit",
"utils/drcov_utils",
"utils/gramatron/construct_automata",
"utils/libafl_benches",
"utils/libafl_jumper",
"utils/ci_runner",
"utils/ci_splitter",
]

default-members = [
"crates/libafl",
"crates/libafl_bolts",
"crates/libafl_cc",
"crates/libafl_derive",
"crates/libafl_targets",
"crates/libafl",
]

exclude = [
"bindings/pylibafl",
"crates/libafl_libfuzzer_runtime",
"docs",
"fuzzers",
"crates/libafl_libfuzzer_runtime",
"utils/noaslr",
"scripts",
"utils/gdb_qemu",
"utils/libafl_repo_tools",
"utils/multi_machine_generator",
"scripts",
"utils/noaslr",
# additional crates
"crates/libafl_concolic/test/symcc/util/symcc_fuzzing_helper",
]

[workspace.package]
version = "0.15.4"
version = "0.16.0"
license = "MIT OR Apache-2.0"
repository = "https://github.com/AFLplusplus/LibAFL/"
readme = "./README.md"

[workspace.dependencies]
# Internal deps
libafl = { path = "./crates/libafl", version = "0.15.4", default-features = false }
libafl_bolts = { path = "./crates/libafl_bolts", version = "0.15.4", default-features = false }
libafl_cc = { path = "./crates/libafl_cc", version = "0.15.4", default-features = false }
symcc_runtime = { path = "./crates/libafl_concolic/symcc_runtime", version = "0.15.4", default-features = false }
symcc_libafl = { path = "./crates/libafl_concolic/symcc_libafl", version = "0.15.4", default-features = false }
libafl_derive = { path = "./crates/libafl_derive", version = "0.15.4", default-features = false }
libafl_frida = { path = "./crates/libafl_frida", version = "0.15.4", default-features = false }
libafl_intelpt = { path = "./crates/libafl_intelpt", version = "0.15.4", default-features = false }
libafl_libfuzzer = { path = "./crates/libafl_libfuzzer", version = "0.15.4", default-features = false }
libafl_nyx = { path = "./crates/libafl_nyx", version = "0.15.4", default-features = false }
libafl_targets = { path = "./crates/libafl_targets", version = "0.15.4", default-features = false }
libafl_tinyinst = { path = "./crates/libafl_tinyinst", version = "0.15.4", default-features = false }
libafl_qemu = { path = "./crates/libafl_qemu", version = "0.15.4", default-features = false }
libafl_qemu_build = { path = "./crates/libafl_qemu/libafl_qemu_build", version = "0.15.4", default-features = false }
libafl_qemu_sys = { path = "./crates/libafl_qemu/libafl_qemu_sys", version = "0.15.4", default-features = false }
libvharness_sys = { path = "./crates/libafl_qemu/libvharness_sys", version = "0.15.4", default-features = false }
libafl_sugar = { path = "./crates/libafl_sugar", version = "0.15.4", default-features = false }
dump_constraints = { path = "./crates/libafl_concolic/test/dump_constraints", version = "0.15.4", default-features = false }
runtime_test = { path = "./crates/libafl_concolic/test/runtime_test", version = "0.15.4", default-features = false }
build_and_test_fuzzers = { path = "./utils/build_and_test_fuzzers", version = "0.15.4", default-features = false }
deexit = { path = "./utils/deexit", version = "0.15.4", default-features = false }
drcov_utils = { path = "./utils/drcov_utils", version = "0.15.4", default-features = false }
construct_automata = { path = "./utils/gramatron/construct_automata", version = "0.15.4", default-features = false }
libafl_benches = { path = "./utils/libafl_benches", version = "0.15.4", default-features = false }
libafl_jumper = { path = "./utils/libafl_jumper", version = "0.15.4", default-features = false }
build_id2 = { path = "./crates/build_id2", version = "0.16.0", default-features = false }
core_affinity2 = { path = "./crates/core_affinity2", version = "0.16.0", default-features = false }
exceptional = { path = "./crates/exceptional", version = "0.16.0", default-features = false }
fast_rands = { path = "./crates/fast_rands", version = "0.16.0", default-features = false }
libafl = { path = "./crates/libafl", version = "0.16.0", default-features = false }
libafl_bolts = { path = "./crates/libafl_bolts", version = "0.16.0", default-features = false }
libafl_cc = { path = "./crates/libafl_cc", version = "0.16.0", default-features = false }
libafl_core = { path = "./crates/libafl_core", version = "0.16.0", default-features = false }
libafl_derive = { path = "./crates/libafl_derive", version = "0.16.0", default-features = false }
libafl_frida = { path = "./crates/libafl_frida", version = "0.16.0", default-features = false }
libafl_intelpt = { path = "./crates/libafl_intelpt", version = "0.16.0", default-features = false }
libafl_libfuzzer = { path = "./crates/libafl_libfuzzer", version = "0.16.0", default-features = false }
libafl_nyx = { path = "./crates/libafl_nyx", version = "0.16.0", default-features = false }
libafl_qemu = { path = "./crates/libafl_qemu", version = "0.16.0", default-features = false }
libafl_qemu_build = { path = "./crates/libafl_qemu/libafl_qemu_build", version = "0.16.0", default-features = false }
libafl_qemu_sys = { path = "./crates/libafl_qemu/libafl_qemu_sys", version = "0.16.0", default-features = false }
libafl_sugar = { path = "./crates/libafl_sugar", version = "0.16.0", default-features = false }
libafl_targets = { path = "./crates/libafl_targets", version = "0.16.0", default-features = false }
libafl_tinyinst = { path = "./crates/libafl_tinyinst", version = "0.16.0", default-features = false }
ll_mp = { path = "./crates/ll_mp", version = "0.16.0", default-features = false }
minibsod = { path = "./crates/minibsod", version = "0.16.0", default-features = false }
no_std_time = { path = "./crates/no_std_time", version = "0.16.0", default-features = false }
ownedref = { path = "./crates/ownedref", version = "0.16.0", default-features = false }
serde_anymap = { path = "./crates/serde_anymap", version = "0.16.0", default-features = false }
shmem_providers = { path = "./crates/shmem_providers", version = "0.16.0", default-features = false }
tuple_list_ex = { path = "./crates/tuple_list_ex", version = "0.16.0", default-features = false }

# Concolic fuzzing crates
dump_constraints = { path = "./crates/libafl_concolic/test/dump_constraints", version = "0.16.0", default-features = false }
runtime_test = { path = "./crates/libafl_concolic/test/runtime_test", version = "0.16.0", default-features = false }
symcc_libafl = { path = "./crates/libafl_concolic/symcc_libafl", version = "0.16.0", default-features = false }
symcc_runtime = { path = "./crates/libafl_concolic/symcc_runtime", version = "0.16.0", default-features = false }

# Utils
build_and_test_fuzzers = { path = "./utils/build_and_test_fuzzers", version = "0.16.0", default-features = false }
construct_automata = { path = "./utils/gramatron/construct_automata", version = "0.16.0", default-features = false }
deexit = { path = "./utils/deexit", version = "0.16.0", default-features = false }
drcov_utils = { path = "./utils/drcov_utils", version = "0.16.0", default-features = false }
libafl_benches = { path = "./utils/libafl_benches", version = "0.16.0", default-features = false }
libafl_jumper = { path = "./utils/libafl_jumper", version = "0.16.0", default-features = false }

# External deps
ahash = { version = "0.8.12", default-features = false } # The hash function already used in hashbrown
Expand All @@ -101,12 +128,16 @@ capstone = "0.13.0" # Disassembler used in libafl_unicorn to provide disassembly
clap = "4.5.49"
cc = "1.2.40"
cmake = "0.1.54"
ctor = "0.4.0"
document-features = "0.2.11"
erased-serde = { version = "0.4.5", default-features = false } # erased serde
fastbloom = { version = "0.14.0", default-features = false }
fs2 = "0.4.3" # Used by OnDisk Corpus for file locking
hashbrown = { version = "0.16.0", default-features = false } # A faster hashmap, nostd compatible
just = "=1.40.0"
libc = "0.2.177" # For (*nix) libc
libipt = { version = "0.4.0", features = ["libipt_master"] }
libvharness_sys = { path = "./crates/libafl_qemu/libvharness_sys", version = "0.16.0", default-features = false }
log = "0.4.28"
meminterval = "0.4.2"
mimalloc = { version = "0.1.48", default-features = false }
Expand All @@ -123,21 +154,22 @@ rangemap = "1.6.0"
regex = "1.12.2"
rustversion = "1.0.22"
serde = { version = "1.0.228", default-features = false } # serialization lib
serial_test = { version = "3.2.0", default-features = false }
serde_json = { version = "1.0.145", default-features = false }
serde_yaml = { version = "0.9.34" } # For parsing the injections yaml file
serial_test = { version = "3.2.0", default-features = false }
static_assertions = "1.1.0"
strum = "0.27.2"
strum_macros = "0.27.2"
toml = "0.9.7" # For parsing the injections toml file
tuple_list = { version = "0.1.3" }
typed-builder = "0.22.0" # Implement the builder pattern at compiletime
typeid = "1.0.3" # Safe type_eq that doesn't rely on std specialization
unicorn-engine = "2.0.1" # Used in libafl_unicorn
uuid = { version = "1.18.1", features = ["serde", "v4"] }
which = "8.0.0"
windows = "0.62.1"
windows-core = "0.62.1"
z3 = { version = "0.19.2", default-features = false }
fs2 = "0.4.3" # Used by OnDisk Corpus for file locking

[workspace.lints.rust]
# Deny
Expand Down Expand Up @@ -165,21 +197,21 @@ std_instead_of_core = "deny"
cargo = { level = "warn", priority = -1 }

# Allow
negative_feature_names = "allow" # TODO: turn into 'warn' when working
multiple_crate_versions = "allow" # TODO: turn into `warn` when working
unreadable_literal = "allow"
type_repetition_in_bounds = "allow"
missing_errors_doc = "allow"
cast_possible_truncation = "allow"
used_underscore_binding = "allow"
ptr_as_ptr = "allow"
comparison_chain = "allow" # This lint makes **ZERO** sense
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
unsafe_derive_deserialize = "allow"
multiple_crate_versions = "allow" # TODO: turn into `warn` when working
negative_feature_names = "allow" # TODO: turn into 'warn' when working
ptr_as_ptr = "allow"
similar_names = "allow"
too_many_lines = "allow"
comparison_chain = "allow" # This lint makes **ZERO** sense
struct_field_names = "allow" # ????
too_many_lines = "allow"
type_repetition_in_bounds = "allow"
unreadable_literal = "allow"
unsafe_derive_deserialize = "allow"
used_underscore_binding = "allow"

[workspace.lints.rustdoc]
# Deny
Expand Down
8 changes: 4 additions & 4 deletions bindings/pylibafl/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "pylibafl"
description = "Python bindings for LibAFL"
version = "0.15.4"
version = "0.16.0"
license = "MIT OR Apache-2.0"
repository = "https://github.com/AFLplusplus/LibAFL/"
keywords = ["fuzzing", "testing", "security", "python"]
Expand All @@ -11,15 +11,15 @@ categories = ["development-tools::testing", "emulators", "embedded", "os"]
[dependencies]
pyo3 = { version = "0.26.0", features = ["extension-module"] }
pyo3-log = { version = "0.13.1" }
libafl_sugar = { path = "../../crates/libafl_sugar", version = "0.15.4", features = [
libafl_sugar = { path = "../../crates/libafl_sugar", version = "0.16.0", features = [
"python",
] }
libafl_bolts = { path = "../../crates/libafl_bolts", version = "0.15.4", features = [
libafl_bolts = { path = "../../crates/libafl_bolts", version = "0.16.0", features = [
"python",
] }

[target.'cfg(target_os = "linux")'.dependencies]
libafl_qemu = { path = "../../crates/libafl_qemu", version = "0.15.4", features = [
libafl_qemu = { path = "../../crates/libafl_qemu", version = "0.16.0", features = [
"python",
] }

Expand Down
2 changes: 1 addition & 1 deletion bindings/pylibafl/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "PyLibAFL"
version = "0.15.4"
version = "0.16.0"
description = "Advanced Fuzzing Library for Python"
readme = "README.md"
requires-python = ">=3.8"
Expand Down
1 change: 1 addition & 0 deletions crates/LICENSE-APACHE
1 change: 1 addition & 0 deletions crates/LICENSE-MIT
35 changes: 35 additions & 0 deletions crates/build_id2/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[package]
name = "build_id2"
version.workspace = true
authors = [
"Andrea Fioraldi <[email protected]>",
"Dominik Maier <[email protected]>",
]
description = "Updated and maintained build id library"
documentation = "https://docs.rs/libafl"
repository = "https://github.com/AFLplusplus/LibAFL/"
readme = "./README.md"
license = "MIT OR Apache-2.0"
keywords = ["os", "build-id"]
edition = "2024"
rust-version = "1.87"
categories = ["os"]

[package.metadata.docs.rs]
features = ["document-features"]
all-features = true

[features]
default = []

[build-dependencies]
rustversion = { workspace = true }

[dev-dependencies]

[dependencies]
uuid = { workspace = true }
ahash = { workspace = true }

[lints]
workspace = true
1 change: 1 addition & 0 deletions crates/build_id2/LICENSE-APACHE
1 change: 1 addition & 0 deletions crates/build_id2/LICENSE-MIT
Loading
Loading