Skip to content

teabound/pointerguard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pointerguard

Pointer encryption library in rust.

Usage

[dependencies]
pointerguard = "0.1.1"
/// 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

Releases

No releases published

Packages

No packages published

Languages