Skip to content

utcq/rave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Rave
RAVE

A Showcase of Rust Memory Analysis Evasion

Using Unsafe Memory Allocation to Prevent Value Leaks during Value Initialization

showcase
RAVE deallocates the value and replaces the variable in the heap with a NULL opcode (0x40).



How Rust Drops Variables:
How rust drop variables

Features

  • Allocation
  • Deallocation
  • Reading
  • Variable Spoofing [ Dealloc::delete() ]

You can still overwrite values with *adr = 5.

Usage

1. Import as src/main.rs module

mod rave

fn main() {
}

2. Allocates a &str

mod rave

fn main(){
  let addr = rave::Alloc::string("my &str");
}

3. Get the value of the string

mod rave

fn main() {
  let addr = rave::Alloc::string("my &str");
  println!("{}", rave::StrOut::decode(rave::Read::string(addr)).as_str());
}

4. Delete allocated &str

mod rave

fn main(){
  let addr = rave::Alloc::string("my &str");
  println!("{}", rave::StrOut::decode(rave::Read::string(addr)).as_str());
  rave::Dealloc::string(addr);
}

License

MIT-licensed repository

About

Rust AV Evasion

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages