Code Monkey home page Code Monkey logo

Comments (3)

arizvisa avatar arizvisa commented on May 28, 2024

definitely looking forward to what y'all come up with (as this'll allow you to connect structs and typeinfo to things like frames, which are really handy when you want to visualize a proper backtrace and read/write individual fields).

from binsync.

mahaloz avatar mahaloz commented on May 28, 2024

Idea Update

I've had some time to think about this and I think we should introduce this TypeEngine as a class that is called from some kind of event handler.

First, we remove all the useless push_* functions and replace it with a single push_artifact function that is implemented inside the common controller. This means that the new push_artifact function will need to take an object of type Artifact in that function we do something like this:

def push_artifact(artifact):
    artifact = self.push_event(artifact)
    if isinstance(artifact, StackVariable):
        ....

We check what the instance of the artifact is and we use that to get both the corresponding set_* function for the state and the correct commit_msg for that specific object.

In the push_event function, we ask that each decompiler controller implement this event handler to correct the artifact in whatever way it needs to be corrected. I see this being in three ways:

  1. Type, using their decompiler specific TypeEngine
  2. StackVar Offset, using a function in their decompiler controller
  3. Addr, using a rebase function in their decompiler controller

Type Converter

Continuing with the old idea, we need the type converter to do some common things across decompilers:

  1. Parse ctype strings, like int [10]; to determine what the base type is
  2. Dump parsed ctype strings after modification

from binsync.

mahaloz avatar mahaloz commented on May 28, 2024

Closed by #163

from binsync.

Related Issues (20)

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.