Expand description
codedefender-config
provides the Rust data structures used for serializing and deserializing
CodeDefender YAML configuration files and analysis results. These structures are used by both
the CodeDefender CLI and its backend services.
This crate is intended to be consumed by tools that integrate with or generate CodeDefender config files.
Structs§
- Analysis
Function - Information about a single function found during analysis.
- Analysis
Macro Profile - Grouping of functions under a named macro profile.
- Analysis
Reject - Reason why a function was rejected from analysis.
- Analysis
Result - Results from binary analysis, returned to the frontend.
- Assembler
Settings - Assembler-level codegen settings.
- BitWidths
- Bit widths to apply transformations to.
- CDCompiler
Settings - Compiler configuration (IR + codegen) for a profile.
- CDConfig
- Top-level config file structure.
- CDModule
Settings - Global obfuscation settings for the module.
- CDProfile
- Profile definition used to apply passes to symbols.
- Custom
Section Name - Custom
.text
section name override. - Fake
PdbString - Fake PDB string settings to confuse debuggers.
- IDADecompiler
Crasher - Pass that crashes IDA’s decompiler.
- LeaEncode
Imm - Encode immediate ssa values into lea’s
- Lifter
Settings - Configuration settings for lifting x86 instructions into IR.
- Loop
Encode Semantics - Configuration for the Loop Encode Semantics pass.
- Mixed
Boolean Arithmetic - Configuration for Mixed Boolean Arithmetic pass.
- Mutation
Engine - Configuration for Mutation Engine pass.
- Obscure
Constants - Statically obscure constants, this does not prevent rematerialization at runtime. Use the SuppressConstants pass in tandem with this!
- Obscure
Control Flow - Control-flow obfuscation pass.
- Obscure
References - Memory reference obfuscation pass.
- Opaque
Block Duplication - Opaque block duplication pass.
- Optimization
Settings - IR optimization settings.
- Semantics
- Instruction-level semantics used in transformations.
- Split
Block Pass - Split block pass, used to create more control flow points for other passes to transform.
- Suppress
Constants - Suppress constants and prevent them from rematerializing at runtime.
- Tether
Extraction - Tether extraction pass.
- Yaml
Config - Root YAML config structure.
- Yaml
Profile - Obfuscation profile for YAML configuration.
Enums§
- Mutation
Engine Extension - Available SIMD extension types used by mutation engines.
- Obfuscation
Pass - All possible obfuscation passes.
- PeEnvironment
- Supported PE environments.
- Yaml
Symbol - Symbol representation used in YAML: either name or RVA.
Constants§
- YAML_
CONFIG_ VERSION - Current supported YAML config version.