angr / angr-platforms

A collection of extensions to angr to handle new platforms
http://angr.io/
BSD 2-Clause "Simplified" License
66 stars 37 forks source link

Atmel AVR support #7

Closed subwire closed 2 years ago

subwire commented 6 years ago

Tracking issue for Atmel AVR microcontroller support

Here's The ISA: http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf

Here's the WIP branch: https://github.com/angr/angr-platforms/tree/wip/avr

Things to do:

  1. Finish the remaining ops. Mostly "st*"
  2. Tie the "skip" instructions to the new two-pass features of gymrat
  3. double-check a weird inconsistency we noticed w/r/t what the PC is during lift-time and during execute-time. The short version is, don't trust the PC at execute time. Use the address the lifter tells you the instruction is at as your PC, instead of the PC in the register.
  4. Double-check our jump behavior w/r/t jumping to the destination, or the thing after it (apparently MSP430 had some inconsistency there)
  5. Deal with the split-memory issues in AVR, namely how to map data and code memory into one memory space. My dumb approach is to just use some high bits of the address and magically translate all the lifted pointers. That might work. Not tested.
  6. Deal with issues in the rest of angr related to the various sizes of pointers vs various sizes of registers vs. the not-strictly-defined size of the address space in AVR. Ignoring the problem and hoping for the best is an option.
  7. Fix all of Eric's typos.
  8. Environment support. I have no idea how we're going to do that (IO reg peripherals probably pending a future planned refactor)
subwire commented 6 years ago

Note that everything gymrat-related is now merged to master! We can rebase this and move forward now.

github-actions[bot] commented 2 years ago

This issue has been marked as stale because it has no recent activity. Please comment or add the pinned tag to prevent this issue from being closed.

github-actions[bot] commented 2 years ago

This issue has been marked as stale because it has no recent activity. Please comment or add the pinned tag to prevent this issue from being closed.

github-actions[bot] commented 2 years ago

This issue has been closed due to inactivity.