[workspace]
members = ["data", "dyncvoke_core", "manualmap", "overload", "dmanager", "spoof"]
resolver = "2"
[workspace.package]
version = "0.1.1"
edition = "2021"
license = "MIT"
authors = ["5mukx"]
repository = "https://git.smukx.site/smukx/Dyncvoke"
homepage = "https://git.smukx.site/smukx/Dyncvoke"
rust-version = "1.81"
[workspace.dependencies]
data = { package = "dyncvoke-data", path = "data", version = "0.1.1" }
dyncvoke_core = { package = "dyncvoke-core", path = "dyncvoke_core", version = "0.1.1" }
manualmap = { package = "dyncvoke-manualmap", path = "manualmap", version = "0.1.1" }
overload = { package = "dyncvoke-overload", path = "overload", version = "0.1.1" }
dmanager = { package = "dyncvoke-dmanager", path = "dmanager", version = "0.1.1" }
spoof = { package = "dyncvoke-spoof", path = "spoof", version = "0.1.1" }
windows-sys = "0.59"
obfstr = "0.4"
nanorand = "0.8.0"
bitfield = "0.19"
memchr = { version = "2.7", default-features = false }
cc = "1.2"
nasm-rs = "0.3"
winproc = "0.6.4"
[package]
name = "dyncvoke"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
rust-version.workspace = true
description = "Dynamically invoke unmanaged Windows APIs via PEB walking, indirect syscalls, and call-stack spoofing"
readme = "README.md"
keywords = ["windows", "syscall", "redteam", "dinvoke", "no-std"]
categories = ["os::windows-apis", "api-bindings", "no-std"]
documentation = "https://docs.rs/dyncvoke"
[package.metadata.docs.rs]
default-target = "x86_64-pc-windows-msvc"
targets = ["x86_64-pc-windows-msvc"]
features = ["syscall", "manualmap", "overload", "dmanager", "spoof"]
rustdoc-args = ["--cfg", "docsrs"]
[lib]
name = "dyncvoke"
path = "src/lib.rs"
doctest = false
[profile.release]
strip = true
[dependencies]
data = { workspace = true }
dyncvoke_core = { workspace = true, optional = true }
manualmap = { workspace = true, optional = true }
overload = { workspace = true, optional = true }
dmanager = { workspace = true, optional = true }
spoof = { workspace = true, optional = true }
[features]
default = ["syscall"]
syscall = ["dep:dyncvoke_core"]
manualmap = ["dep:manualmap", "syscall"]
overload = ["dep:overload", "manualmap"]
dmanager = ["dep:dmanager", "overload"]
spoof = ["dep:spoof", "syscall"]
spoof-desync = ["spoof", "spoof/desync"]
full = ["syscall", "manualmap", "overload", "dmanager", "spoof", "spoof-desync"]