immunant / dwarf-writer Goto Github PK
View Code? Open in Web Editor NEWUpdates DWARF debug sections and ELF symbols with info obtained through disassembly
Updates DWARF debug sections and ELF symbols with info obtained through disassembly
The EntryRef
methods in dwarf_entry.rs duplicate some code since the various input sources provide different DWARF function and variable entry attributes. We could deduplicate quite a bit by creating an internal IR for DWARF function and variable entries.
Essentially these structs would have Option<T>
fields for the entry attributes. We may possibly want to use a different enum with three variants to distinguish between input sources that cannot provide a certain attribute and those that can, but did not provide it. Then the parsed input data would be transformed into this IR (instead of the current AnvillData
, GhidraData
, etc...) and we could use a single function to update the DWARF function entries and another for variables. This wouldn't change the behavior of this tool, but would be good to have before adding any more input sources.
We can currently take symbols from anvill json specs to update/create names in DWARF entries for functions and global variables. Consumers of the updated binaries may prioritize reading symbols or be unable to read debug info, so we should support writing/updating symbols as well. This isn't too relevant for the json anvill generates, but it is useful for integrating manual reverse engineering results back into the binaries.
donna
doesn't have llvm-dwarfdump
in $PATH
; it does have llvm-dwarfdump-11
, llvm-dwarfdump-12
, etc. in $PATH
.
Might as well reuse what's already there.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.