Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added A Code Region Unpacker in the Capstone disassembler library to … #104

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dannyp303
Copy link
Collaborator

Short draft for a CodeRegionUnpacker implemented in capstone. This should essentially treat an entire code region as 1 basic block and disassemble the entire thing without regard.

Use cases:
Performances or machine constraints.
Difficult to analyze binaries where code flow is less important than full instruction coverage(my current predicament).
Others I'm sure...

Issues:
ARM THUMB and PPC VLE switching not handled properly as that info has the potential to be on a basic block scope (not sure about VLE on this). This info is typically picked up by code flow analysis by a backend disassembler. I'm sure there are ways to fix this (maybe angr supplementation) , but out of scope for now.
Is there a way to load the capstone disassembler service, but prioritize other CodeRegionUnpackers over this one if loaded. Dependency injection things.

…be used as a brute sort of disassembler when no other is available. Essentially an unpacker that directly calls the disassembler service on an entire CodeRegion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant