forked from AFLplusplus/LibAFL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
113 lines (98 loc) · 3.51 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
[package]
name = "libafl_frida"
version.workspace = true
authors = ["s1341 <[email protected]>"]
description = "Frida backend library for LibAFL"
documentation = "https://docs.rs/libafl_frida"
repository = "https://github.com/AFLplusplus/LibAFL/"
readme = "../README.md"
license = "MIT OR Apache-2.0"
keywords = ["fuzzing", "frida", "instrumentation"]
edition = "2021"
categories = [
"development-tools::testing",
"emulators",
"embedded",
"os",
"no-std",
]
[package.metadata.docs.rs]
no-default-features = true # We can't use auto-download inside docs.rs (no internet)
all-features = false
features = [
"cmplog",
"serdeany_autoreg",
"track_hit_feedbacks",
"document-features",
]
[features]
default = ["serdeany_autoreg", "auto-download"]
document-features = ["dep:document-features"]
#! # Feature Flags
#! ### General Features
## Enables `cmplog`, a mode that logs comparisons. This increases runtime overhead but also increases the fuzzer's solving capabilities. Should be used on some cores.
cmplog = ["iced-x86"]
## Automatically register all types with LibAFL's serializer. There's hardly a reason not to use this.
serdeany_autoreg = ["libafl_bolts/serdeany_autoreg"]
## If hit feedbacks should be tracked as part of LibAFL's feedback.
track_hit_feedbacks = ["libafl/track_hit_feedbacks"]
## If Frida should be automatically downloaded (else you'll have to provide a Frida version to use manually)
auto-download = ["frida-gum-sys/auto-download", "frida-gum/auto-download"]
[build-dependencies]
cc = { workspace = true, features = ["parallel"] }
[dependencies]
libafl = { workspace = true, features = ["std", "derive", "frida_cli"] }
libafl_bolts = { workspace = true, features = ["std", "derive", "frida_cli"] }
libafl_targets = { workspace = true, default-features = true, features = [
"std",
"sancov_cmplog",
] }
nix = { workspace = true, default-features = true, features = ["mman"] }
libc = { workspace = true }
hashbrown = { workspace = true, default-features = true }
rangemap = { workspace = true }
frida-gum-sys = { version = "0.15.1", features = [
"event-sink",
"invocation-listener",
] }
frida-gum = { version = "0.15.1", features = [
"event-sink",
"invocation-listener",
"module-names",
"script",
] }
dynasmrt = "3.0.1"
color-backtrace = { version = "0.6.1", features = ["resolve-modules"] }
termcolor = "1.4.1"
serde = { workspace = true, default-features = true }
backtrace = { workspace = true, default-features = false, features = [
"std",
"serde",
] }
num-traits = { workspace = true, default-features = true }
ahash = { workspace = true, default-features = true }
paste = { workspace = true }
log = { workspace = true }
mmap-rs = "0.6.1"
bit_reverse = "0.1.8"
yaxpeax-arch = "0.3.2"
document-features = { workspace = true, optional = true } # Document all features of this crate (for `cargo doc`)
[dev-dependencies]
serial_test = { workspace = true, default-features = false, features = [
"logging",
] }
clap = { workspace = true, features = ["derive"] }
libloading = "0.8.5"
mimalloc = { workspace = true, default-features = false }
dlmalloc = { version = "0.2.6", features = ["global"] }
[lints]
workspace = true
[target.'cfg(target_arch = "aarch64")'.dependencies]
yaxpeax-arm = "0.3.0"
[target.'cfg(target_arch = "x86_64")'.dependencies]
yaxpeax-x86 = "2.0.0"
iced-x86 = { version = "1.21.0", features = ["code_asm"], optional = true }
[target.'cfg(windows)'.dependencies]
winsafe = { version = "0.0.22", features = ["kernel"] }
[target.'cfg(target_vendor="apple")'.dependencies]
mach-sys = { version = "0.5.4" }