Shachar Shemesh wrote:
Ordering should be done by the following criteria:
- If A depends on B, but B does not depend on A, A must appear higher than B.
- If rule 1 did not resolve relative order, and A has more modules dependant on it than B, A must appear higher.
- If neither rules resolved the order, make it arbitrary.
These two criteria make sure that the matrix is triangle shaped unless there's a circular dependancy. Also, these rules make sure that modules that depend on other modules and are heavily linked to, such as kernel32, are higher up than modules that depend on no other modules and are not linked to, such as actxprxy.
If you want, I can write some perl to create such a table from the available information.
Also, get rid of the dups. Here's an example:
# c:\windows\system32/rsaenh.dll imports: advapi32.dll advapi32.dll kernel32.dll kernel32.dll msvcrt.dll msvcrt.dll mswsock.dll ntdll.dll user32.dll user32.dll ws2_32.dll
- Dan