# hax-rs draft ## Different categories - Cheat setup: - [x] Main function - Might need to create hooks (internal) - Memory functionality - [x] Reading/Writing memory - [ ] Pattern scanning(?) - **Bulk reading** (read entire struct in with one call) - **Caching values** (only reading once at start of game, ...) - Sanity checking pointer values if they are correct (in case you crash) - Overlay: - TODO: Generic implementation like memlib - Different default implementations - Creating a window - Known public exploits (discord overlay hooking, ...) - Logger: ??? - Do we need our own logger? - Cheat features: - **CONFIG SYSTEM!!!** x - How to run them? - How to register them? - TODO: Make sure there's lots of discussion involved with this, since it's the most important thing. - Idea #1: ``` #[feature] fn aimbot() {} ``` - Idea #2: Harder to do, because we might need to create or pass some variables in the struct. ``` #[derive(Feature)] struct Aimbot {} ``` - **Offsets:** - Automatic signature scanning - Testing if pointers are invalid - How to handle pointer encryption? - **Math:** - Aimbot - Bone Matrix calc - ESP (box, 2d, w2s, ...) - **Engine abstractions:** - Unreal Engine - Unity - Source Engine - ... - **Injection helpers**: Automatically inject your dll during development (should be really easy and fast) **Reference Implementation:** Would be the best to test the new features, help others figure out the framework. - CSGO? - Assault Cube? ## Possible problems: - Anticheats writing specific detections for this - Performance --- ``` pub trait Operations { fn setup(&mut self); fn toggle(&mut self, key_state: i16); fn cleanup(&mut self); } #[derive(CheatConfig)] pub struct AimbotConfig { } #[derive(CheatFeature)] pub struct Aimbot { } // Should: // - state (toggle) // - keybind? // - config? // - aimbot fov, speed, ... fn main() { let config = ...; let features = vec![ Aimbot::register(context) ]; } ``` ``` #[hax::main()] fn main(ctx: Context) { let features = vec![ Aimbot::register(context) ]; CTX.unwrap() } ```