Closed bannsec closed 5 years ago
Having tested this, it seems to mostly work.
Some pending things:
So the core functionality for this target appears to work fine. Not sure when some of the auxilary issues will be closed for, for instance, R2 bugs. That said, if you use it for normal things like software breakpoints, sync, etc, it should be fine. Once R2 fixes those issues (and angr fixes ST thing) there shouldn't be any changes needed to the target code itself.
One note is that, when this code gets into automated testing, it does have a requirement for r2 to be present. Wasn't sure how you wanted to handle that. For now, manually running the nose tests in my environment works.
Personally, i think this code should be OK to merge in with the above caveats understood.
https://github.com/radareorg/radare2/issues/13118 is fixed by now
Some initial R2 functions. Keeping this as a PR for now for cognizance. Using gdb as an example, but not implementing a full Avatar2 framework.
Somewhat implemented through set/remove breakpoint at the moment.
The idea for how to use this would be to instantiate the R2Concrete class with an already instantiated r2 class. This allows for r2 to get set up however one wants, and then simply the hand the class itself off to angr when ready.
For example, my current tests look like this: