# Crate: protected_integer A simple crate, that protects some variables from being modified by memory tampering tools. ## Usage 1. Add this crate to dependencies in Cargo.toml ```toml [dependencies] protected_integer = "0.1" ``` 2. Use this crate in your project ```rust use protected_integer::{ProtectedInteger, State}; let mut my_number = ProtectedInteger::new(114514); // initialize this variable // Check and get the value match 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) ``` ## Hacking test You can clone this repo and execute `cargo run --example hacking_test` Now trying to hack the process with Cheat Engine