README.md
azathoth_core provides low-level, platform-specific definitions and utilities used across the Azathoth c2 framework
It serves a no_std-compatible layer, containing:
- Platform-specific structs, constants and type definitions for Windows and Linux
- A
crc32lookup table for fast hashing - The
AzErrortrait error interface shared across the rest of the Azathoth Crates
Warning
This project is still in active development and may change at any time!
- Manually, via
Cargo.toml:azathoth_core = "0.1.4" - Using the
cargocli:cargo add azathoth_core
The following structs (and related types) are included:
- Windows:
Guid- Windows Internals:
TEB(Thread Environment Block)PEB(Process Environment Block)RTL_USER_PROCESS_PARAMETERSUNICODE_STRINGLIST_ENTRYLDR_DATA_TABLE_ENTRYPEB_LDR_DATA
- PE/COFF structures:
IMAGE_DOS_HEADERIMAGE_NT_HEADERS64IMAGE_FILE_HEADERIMAGE_OPTIONAL_HEADER64IMAGE_DATA_DIRECTORYIMAGE_EXPORT_DIRECTORYIMAGE_SECTION_HEADERIMAGE_BASE_RELOCATIONIMAGE_IMPORT_DESCRIPTORIMAGE_IMPORT_DESCRIPTOR_0(union)IMAGE_THUNK_DATA64IMAGE_THUNK_DATA64_0(union)IMAGE_IMPORT_BY_NAMEIMAGE_TLS_DIRECTORY64
URL_COMPONENTSARUNTIME_FUNCTIONWLDP_HOST_INFORMATIONEVENT_DESCRIPTOREVENT_DATA_DESCRIPTOR
- Linux:
Elf64Ehdr(ELF64 File header)Elf64Dyn(ELF64 dynamic table entry)Elf64Rela(ELF64 Relocation entries)Elf64Sym(Symbol table entry)Elf64Phdr(ELF64 Program header)Elf64Shdr(ELF64 section header)
- 0.1.0: Initial release
- 0.1.1: Re-exported CRC32 hashing table
- 0.1.2: Added Dotnet definitions (locked behind
dotnet-defsfeature. Windows only) - 0.1.3: Made
osmodules feature-dependent. You can now use thewindowsstructs on linux and vice versa - 0.1.4: Added AV structs and function signatures (locked behind
av-defsfeature. Windows only), plus a few extra typedefs for basic Windows types