pointerguard

Crates.iopointerguard
lib.rspointerguard
version0.1.1
sourcesrc
created_at2025-04-13 16:14:49.567255+00
updated_at2025-04-13 16:16:31.844018+00
descriptionPointer encryption library in rust.
homepagehttps://github.com/item-self/pointerguard
repositoryhttps://github.com/item-self/pointerguard
max_upload_size
id1631944
size133,569
(item-self)

documentation

https://docs.rs/pointerguard

README

pointerguard

Pointer encryption library in rust.

/// Example player struct.
struct Player {
  health: u32,
}

// turn box into encrypted pointer.
let player: EncryptedPtr<_> = Box::new(Player { health: 100 }).into();

assert_eq!(player.health, 100);

You can replace Box<T> with EncryptedPtr<T>, for example, to encrypt the reference to T.

Features

  • Random encryption method determined on EncryptedPtr instantiation, making it harder to reverse engineer.
  • Automatically drops and deallocates pointed object when EncryptedPtr goes out of scope.

Motivation

cheat engine results As you can see in this image, we can pointer scan (manually or automatically) to find the 'link' to the player's health: World -> people -> Person. To fix this just change Box<Person> to EncryptedPtr<Person>.

pointer_scan results

Now, just like that, the chain is "broken".

process_graphic

Commit count: 0

cargo fmt