| 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
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());
}
}- Opcode map
- Special opcode map
- Regimm opcode map
- Special 2 opcode map
- Special 3 opcode map
- Pcrel
- Cop 0
- Cross platform
- No dependency
- No memory allocation
- Thread safe(there's only one thread)
- No unsafe
- Assembler???
- More Mips versions
- Exceptions
- Mips Extensions
- Online assembler/disassembler which is basically Keystone
- MIPS64 Manuals Release 6: Volume 1, Volume 2, Volume 3





