-
Notifications
You must be signed in to change notification settings - Fork 19
Home
devdri edited this page Jan 22, 2014
·
2 revisions
Roadmap: (not exactly in order)
- Port to GUI application (web based version will still be available)
- interface for opening roms
- make a proper window with symbol list, disassembly, etc.
- add support for symbol renaming without leaving the page
- ui for graph searches, etc.
- tighter integration with graphviz
- ... make the user experience better
- command line options
- Improve disassembly presentation
- make call annotations shorter; display full data in procedure header comment
- fix various ugly things about expressions
- Change the way procedures are represented
- create a map of rom code and data 'chunks' - those are the atomic pieces of code, divided by jump sources and targets (nobody jumps in the middle of a code chunk).
- change calls/references: instead of a reference originating from the procedure beginning, it should originate from the exact responsible instruction. This will make references independent from procedure boundaries.
- procedures will now be a set of chunks. This will enable us to remove the restriction of procedures being contiguous (which could give much cleaner analysis in some cases).
- With the new represenation of procedures, make more guarantees about graph correctness
- more emphasis on removing orphans and artificial procedure splits which clutter the graph
- Make a set of tools for maintaining the graph: cleanup, deduce-more, discover-more
- Refactor current hacks: 'idioms' and manual jumptable limits:
- jumptable limits to database + make UI for it
- make 'idioms' more generic (idioms: for example 'rst 0 == switch A with jumptable at next PC')
- Add support for more 'idiomatic' instructions:
- memcpy dest, src, size
- memset dest, size, stride, value
- 16 bit arithmetic, multiplication, etc.
- (in general: detect stuff with simple loops or ifs)