# 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()
}
```