I thought about something to find functions without relying on signature scanning (or at least relying less) but I don't know if it is good (or even can be put) in practice. The idea is creating a tree of functions associated by their relations (how they call each other) and infer addresses given some. For example:
X calls (only) Y and Z. If Y and X are known, Z can be inferred.
By "calls" I mean at least direct calls.
So that this work it must be known where a function ends. I don't know about that but I guess that It can be made. And also a parser of assembly instructions (what exists).
The greater the amount of relations given, the greater the amount of functions inferred.
Also to minimize eventual problems with updates, the parsing of this relations should detect impossible relations when possible.
__________________