Skip to content

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.

1 participant