feat: gobin
This commit is contained in:
@@ -1,3 +1,32 @@
|
||||
#[macro_use] extern crate rust_util;
|
||||
|
||||
use std::path::Path;
|
||||
use goblin::Object;
|
||||
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
let file = std::env::args().nth(1);
|
||||
match file {
|
||||
None => failure_and_exit!("Must assign a file"),
|
||||
Some(f) => {
|
||||
let path = Path::new(&f);
|
||||
let buff = std::fs::read(path).unwrap_or_else(|e| failure_and_exit!("Read file: {}, failed: {}", f, e));
|
||||
match Object::parse(&buff).unwrap_or_else(|e| failure_and_exit!("Read file: {}, failed: {}", f , e)) {
|
||||
Object::Elf(elf) => {
|
||||
success!("Found elf file: {:?}", elf.header);
|
||||
}
|
||||
Object::PE(pe) => {
|
||||
success!("Found PE file: {:?}", pe);
|
||||
}
|
||||
Object::Mach(mach) => {
|
||||
success!("Found mach file: {:?}", mach);
|
||||
}
|
||||
Object::Archive(archive) => {
|
||||
success!("Fund linux archive file: {:?}", archive);
|
||||
}
|
||||
Object::Unknown(magic) => {
|
||||
failure!("Unknown file, magic: {}", magic);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user