Expand description

đŸ”„ firehazard đŸ”„

GitHub crates.io docs.rs License

Create a fire hazard by locking down your (Microsoft) Windows so nobody can escape (your security sandbox.)
Unopinionated low level API bindings focused on soundness, safety, and stronger types over raw FFI.
You may be at hazard of being fired (or worse) for relying on this crate for security:

⚠ Warnings ⚠

  • 0.0.0-yyyy-mm-dd doesn’t follow semver.
  • I’m not subscribed to any security lists.
  • I don’t have anything alerting me to CVEs.
  • This crate is probably not 100% sound. Bug reports welcome.
  • I don’t have any PGP keys for you to securely send me security bugs.
  • Keep flammable materials away from heaters and other ignition sources.
  • This isn’t backed by a team or company. Nor me, frankly.
  • I have no code reviewers.
  • I haven’t fuzz tested anything.
  • My test coverage is mediocre.
  • There is no red team.
  • I haven’t made a proper attempt to bypass even the example sandbox.
  • Just because you’re paranoid, doesn’t mean that they aren’t out to get you.
  • Rust has made me overconfident.
  • Rust has made you overconfident.
  • Keep emergency exits accessible and usable to avoid fire safety hazards.
  • The false sense of security - that using this code will lure you into - may be worse than nothing at all.
  • Test your fire alarms. The batteries are probably dead.

Quickstart

# Cargo.toml
[dependencies]
firehazard.git = "https://github.com/MaulingMonkey/firehazard"

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Modules

[docs.microsoft.com] ACCESS_MASK generic types, functions, and constants

[docs.microsoft.com] ACL / ACE_HEADER related types and manipulation functions

[docs.microsoft.com] ACL related types and manipulation functions

Allocators, deallocators, etc.

Debugger APIs from debugapi.h, dbgeng.h (not yet)

[docs.microsoft.com] Generic Kernel Object HANDLE wrapping types and functions.

I/O APIs (pipe handles and fns)

[docs.microsoft.com] Job Object types and fns

[docs.microsoft.com] Process mitigation policy types and functions

[docs.microsoft.com] Privilege related types and functions

[docs.microsoft.com] Process OwnedHandle and related fns

[docs.microsoft.com] SID related types and manipulation functions

[docs.microsoft.com] Thread OwnedHandle and related fns

[docs.microsoft.com] Access token handle types and related functions

[docs.microsoft.com] Window Station APIs

Macros

Create a sid::Ptr at compile time via e.g. sid!(S-1-0-0)

Structs

[docs.microsoft.com] DWORD/u32, typically from GetLastError, representing an error code, hresult, or ntstatus

[docs.microsoft.com] LUID (~ a 32-bit aligned u64 / “Locally Unique IDentifier”)