Maksim Shudrak
Maksim Shudrak
For some reasone IDAMetrics-static sometimes may cause errors in IDA fo apps that larger than 20-25MB.
We can implement additional evaluation for Henry & Cafura metric after dynamic code analysis.
We need special algorithm instead of idc.GetFunctionName for "red" zones.
Now we can't identify fastcall functions, so we need this functionality.
Now we can't identify variables which is handled by registers. We can only identify stack local variables.
Now boundaries and edges are making by using internal IDA functionality but it doesn't work for functions which have jumps beyond function boundaries (or jumps to "red" areas of code)....
Now make_graph function has ugly additional functionality to make the graph correct for functions with chunks and to add terminal nodes. (xref i#7)
Sometimes IDA makes nodes in graph without incoming edges. We should handle such situations.
Sometimes functions in binaries have more than one terminal node. We should handle such situations when the graph is creating.
Harrison metric should be calculated by using the Halstead metric as initial complexity metric for the node.