-
Notifications
You must be signed in to change notification settings - Fork 6
/
Cargo.toml
118 lines (104 loc) · 2.57 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
114
115
116
117
118
[package]
name = "xgadget"
version = "0.11.1"
authors = ["Tiemoko Ballo", "d3vco"]
edition = "2018"
license = "MIT"
readme = "README.md"
homepage = "https://github.com/entropic-security/xgadget"
repository = "https://github.com/entropic-security/xgadget"
documentation = "https://docs.rs/xgadget"
keywords = ["rop", "jop", "gadget", "x86", "x64"]
categories = ["algorithms", "development-tools", "command-line-utilities"]
description = "Fast, parallel, cross-variant ROP/JOP gadget search for x86/x64 binaries."
include = ["**/*.rs", "**/*.md", "**/*.sh", "Cargo.toml", "LICENSE"]
[dependencies]
# Library deps
iced-x86 = "1"
goblin = "0.7"
rayon = "1"
bitflags = "2"
colored = "2"
rustc-hash = "1"
thiserror = "1"
# CLI deps
lazy_static = { version = "1", optional = true }
clap = { version = "4", features = [
"cargo",
"color",
"derive",
"env",
], optional = true }
num_cpus = { version = "1", optional = true }
regex = { version = "1", optional = true }
term_size = { version = "0.3", optional = true }
checksec = { version = "0.0.9", features = [
"elf",
"pe",
"color",
], optional = true }
# TODO: temp duplicate until `checksec` upgrades its `goblin` dep version
checksec_goblin = { package = "goblin", version = "0.5", optional = true }
memmap = { version = "0.7", optional = true }
num-format = { version = "0.4", optional = true }
tabled = { version = "0.14", features = ["color"], optional = true }
color-eyre = { version = "0.6", default-features = false, optional = true }
[dev-dependencies]
assert_cmd = "2"
criterion = "0.3"
dirs = "4"
pprof = { version = "0.8", features = ["flamegraph"] }
predicates = "2"
rand = "0.8"
regex = "1"
strip-ansi-escapes = "0.2"
tempfile = "3"
[features]
cli-bin = [
"lazy_static",
"clap",
"num_cpus",
"regex",
"term_size",
"checksec",
"checksec_goblin",
"memmap",
"num-format",
"tabled",
"color-eyre",
]
[lib]
name = "xgadget"
path = "src/lib.rs"
[[bin]]
name = "xgadget"
path = "src/cli/main.rs"
required-features = ["cli-bin"]
[[bench]]
name = "bench_0_elf_userspace"
harness = false
[[bench]]
name = "bench_1_filter"
harness = false
[[bench]]
name = "bench_2_fmt"
harness = false
[[bench]]
name = "bench_3_elf_kernels"
harness = false
[profile.release]
panic = "unwind"
opt-level = 3
debug = false
rpath = false
lto = "fat"
debug-assertions = false
codegen-units = 1
incremental = false
overflow-checks = false
[profile.bench]
debug = true
# TODO: lock to bench
#[target.x86_64-unknown-linux-gnu]
#linker = "/usr/bin/clang"
#rustflags = ["-Clink-arg=-fuse-ld=lld", "-Clink-arg=-Wl,--no-rosegment"]