|
The AbsIL/ILX SDK is available from http://research.microsoft.com/downloads.
The toolkit comes as a set of .NET assemblies, for use from F#, C#
or any other .NET language, though it is best used from F#. If using the
libraries from C# or a .NET language that is not F# you should read
the F# pages and a class browser to understand how the libraries can be
called from that language. The libraries offer a fairly abstract view of the
contents of an Common IL binary, as F# datatypes and abstract types
(these appear as classes to C# and other .NET languages).
Other functionality such as reference-resolution and writing IL files is
included. A sample analysis program is included.
If accessing the library from F# you
can use the release of F# that is bundled with the library. If accessing the library
from C# or another .NET language you will simply need an installation of that .NET language.
Sample projects that can be
built on top of ILX are:
 |
Control-flow analysis to identify potential optimization sites |
 |
IL validation and verification tools |
 |
IL-to-IL, IL-to-Other or Other-to-IL program transformers |
 |
IL obfuscators |
 |
Static analysis tools for correctness or security analysis |
 |
IL visualization tools |
Please follow the guidelines below when writing
code against the IL SDK! This is for your own benefit as much as mine...
In addition to everything stated in the EULA
Licence Agreement, please note that I may change
the interfaces, delete functionality, change functionality, etc. etc. in future
releases of the SDK. Please expect a little churn. The API
has been fairly stable so far, and F# will typically be able to warn you of
my changes via its wonderful type-checking. I will typically attempt to
notify you of changes that affect you, especially if you notify me of the functionality you are
using.
I welcome suggestions for
further functionality to include.
No further documentation is available except
that included in the F# Interface files (see lib/*.mli), the samples (in
particular samples/classcount/*) and the README files (in particular samples/classcount/README.txt).
I would greatly appreciate it if people using these libraries could provide
feedback, and could let me know what functionality they are using.
 |
I would like to provide a view of IL code which
includes a control-flow graph, probably implemented as a module on top of the
existing functionality, using a graph implemented using mutable structures.
|
|