Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

Crate: protected_integer

A simple crate that protects some integer variables from being modified by memory tampering tools.

Usage

  1. Add this crate to dependencies in Cargo.toml

    [dependencies]
    protected_integer = "0.1"
  2. Use this crate in your project

    use protected_integer::{ProtectedInteger,State};letmut my_number = ProtectedInteger::new(114514);// initialize this variable// Check and get the valuematch my_number.get(){State::Untampered(num) => {println!("The variable has not been tampered with");}State::Tampered(num) => {println!("The variable was tampered with, but the backup variable was not");println!("The restored value is {}", num);}}// change the value
    my_number.set(1919810);

Performance

According to benchmark result, this crate is almost zero-cost

Detailed result:

running 3 tests
test tests::basic_mutations ... ignored
test tests::bench_getting ... bench: 0 ns/iter (+/- 0)
test tests::bench_setting ... bench: 4 ns/iter (+/- 0)

Testing

Clone this repo and execute cargo run --example hacking_test

Now trying to hack the process with Cheat Engine

About

Protect integer variables from memory tampering

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages