Coder Social home page Coder Social logo

dwarf-writer's People

Contributors

ayrtonm avatar thedataking avatar travitch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

dwarf-writer's Issues

Create an internal IR for DWARF info

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.

Add support for updating symbols

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.