[package]
name = "dotscope"
version = "0.7.0"
authors = ["Johann Kempter <admin@binflip.rs>"]
edition.workspace = true
description = "A high-performance, cross-platform framework for analyzing and reverse engineering .NET PE executables"
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/dotscope"
keywords = ["dotnet", "cil", "assembly", "reverse-engineering", "metadata"]
categories = ["parsing", "development-tools", "encoding"]
readme = "../README.md"
exclude = [
"tests/",
"docs/",
"*.log",
"*.exe",
]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
thiserror = "2.0.18"
uguid = "2.2.1"
widestring = "1.2.1"
strum = { version = "0.28.0", features = ["derive"]}
cowfile = "0.2.2"
memmap2 = "0.9.10"
tempfile = "3.27.0"
goblin = { version = "0.10.5", default-features = false, features = ["pe32", "pe64", "std"] }
ouroboros = "0.18.5"
sha1 = { version = "0.11.0", optional = true, features = ["oid"] }
sha2 = { version = "0.11.0", features = ["oid"] }
md-5 = { version = "0.11.0", optional = true }
hmac = "0.13.0"
imbl = { version = "7.0.0", optional = true }
pbkdf2 = "0.13.0"
aes = "0.9.0"
des = { version = "0.9.0", optional = true }
cbc = "0.2.0"
ecb = "0.2.0"
dashmap = "6.1.0"
crossbeam-skiplist = "0.1.3"
rayon = "1.12.0"
rustc-hash = "2.1.2"
boxcar = "0.2.14"
quick-xml = "0.39.2"
hex = "0.4.3"
num-bigint = { version = "0.4.6", optional = true }
log = "0.4.29"
flate2 = "1.1.9"
lzma-rs = "0.3.0"
z3 = { version = "0.20.0", optional = true }
iced-x86 = { version = "1.21.0", default-features = false, features = ["std", "decoder", "instr_info"], optional = true }
tokio = { version = "1.52.1", optional = true, features = ["rt-multi-thread"] }
[target.'cfg(target_os = "macos")'.dependencies]
mistralrs = { version = "0.8.1", optional = true, features = ["metal"] }
[target.'cfg(not(target_os = "macos"))'.dependencies]
mistralrs = { version = "0.8.1", optional = true }
[dev-dependencies]
criterion = "0.8.2"
env_logger = "0.11.10"
clap = { version = "4.6.1", features = ["derive"] }
ctrlc = "3.5.2"
[features]
default = ["legacy-crypto", "emulation", "x86", "deobfuscation"]
legacy-crypto = ["dep:sha1", "dep:md-5", "dep:des"]
emulation = ["dep:imbl", "dep:num-bigint"]
compiler = []
x86 = ["dep:iced-x86"]
z3 = ["dep:z3"]
deobfuscation = ["compiler", "x86", "emulation"]
smart-rename = ["deobfuscation", "dep:mistralrs", "dep:tokio"]
skip-expensive-tests = []
[[example]]
name = "deobfuscate"
required-features = ["deobfuscation"]
[[example]]
name = "analysis"
required-features = ["deobfuscation"]
[[bench]]
name = "cilobject"
harness = false
[[bench]]
name = "cilassemblyview"
harness = false
[[bench]]
name = "assembly"
harness = false
[[bench]]
name = "resources"
harness = false
[[bench]]
name = "method_body"
harness = false
[[bench]]
name = "signatures"
harness = false
[[bench]]
name = "streams"
harness = false
[[bench]]
name = "cor20"
harness = false
[[bench]]
name = "security"
harness = false