Skip to content

xlatbx59/Mips-goggles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mips-goggles

Brice code

Mips-Goggles is a mips disassembler for the mips instruction set, it is not finished yet but it implement most core instructions except from coprocessor 1, 2 and 3(aka cop1x).

Note

You can't turn instructions into strings it has been removed, it's still in the first commit if you want to try, but I'll reimplement it somedays

Examples

use mips_goggles::{*, disassembler::MgDisassembler};
 
fn main(){
    //Mips machine has to be in big endian
    //This machine code was ripped from a mips crack me from Root-me
    let code = [    0x90ffbd27, 0x6c00bfaf, 0x6800beaf, 0x21f0a003,
                    0x42001c3c, 0x308d9c27, 0x1000bcaf, 0x4000023c,
                    0xc40c4424, 0x2c80998f, 0x00000000, 0x09f82003,
                    0x00000000, 0x1000dc8f, 0x4000023c, 0xe00c4424,
                    0x2c80998f, 0x00000000, 0x09f82003 ];
    let decoder = MgDisassembler::new_disassembler(MgMipsVersion::M32(MgMips32::MgPreR6));
    for machine_code in code{
        println!("{:?}", decoder.disassemble(u32::from_be(machine_code), 0x00400000).unwrap());
    }
}

Completed

Goals

  • Cross platform
  • No dependency
  • No memory allocation
  • Thread safe(there's only one thread)
  • No unsafe
  • Assembler???
  • More Mips versions
  • Exceptions
  • Mips Extensions

Inspiration

Resources

Releases

No releases published

Packages

 
 
 

Contributors

Languages