Change io crate & add a small shell
This commit is contained in:
@@ -37,7 +37,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
println!("Extraction des symboles depuis {}...", elf_path);
|
||||
|
||||
obj_file.symbols().enumerate().for_each(|(i, sym)| {
|
||||
obj_file.symbols().enumerate().for_each(|(_i, sym)| {
|
||||
// On ne garde que les fonctions (Text)
|
||||
if sym.kind() == SymbolKind::Text && sym.size() > 0 {
|
||||
let addr = sym.address();
|
||||
@@ -76,20 +76,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Tri par adresse pour la recherche binaire au runtime
|
||||
symbols_list.sort_by_key(|s| s.addr);
|
||||
|
||||
let idx = match symbols_list.binary_search_by_key(&(0x000000008004073c), |s| s.addr) {
|
||||
Ok(i) => i,
|
||||
Err(i) if i > 0 => i - 1,
|
||||
_ => panic!(),
|
||||
};
|
||||
|
||||
println!("{:?}", unsafe {
|
||||
get_str(
|
||||
string_table
|
||||
.as_ptr()
|
||||
.add(symbols_list[idx].name_off as usize),
|
||||
)
|
||||
});
|
||||
|
||||
// Écriture du fichier symbols.bin
|
||||
let mut f = BufWriter::new(File::create("../target/symbols.bin")?);
|
||||
|
||||
@@ -119,10 +105,3 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
unsafe fn get_str(ptr: *const u8) -> &'static str {
|
||||
let mut len = 0;
|
||||
while *ptr.add(len) != 0 {
|
||||
len += 1;
|
||||
}
|
||||
core::str::from_utf8_unchecked(core::slice::from_raw_parts(ptr, len))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user