At BlackHat this morning Halvar talked about a handful of reverse engineering ideas on his wishlist:
#0 have the tool tell you what a function/code block may return
#1 more data structure analysis, diagram how structures relate to each other
#2 reconstruct class info
#3 group functions into modules. perhaps write an IDA plugin to enable manual grouping
#4 recover template info.
#5 generate input that will reach a specific code location
#6 automate analysis of translation-and-emulation protection schemes
#7 reduce code blocks to normal form
- use to defeat most polymorphic engines
#8 add the concept of order to callgraphs, so you can see what order functions are called in
#9 get info on the order functions must be called in.
- i.e. connect() before send() before close()
#10 semantic-based signatures/descriptions of libraries
I might take a crack at a few of them. I'll probably start off with creating a framework in IDA for #3 (grouping functions into modules).
Anyone else interested in working on any of his ideas?





