*
Quick Links|Home|Worldwide
Microsoft*
Search for



Abstract IL


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

Sample projects that can be built on top of ILX are:

bullet Control-flow analysis to identify potential optimization sites
bullet IL validation and verification tools
bullet IL-to-IL, IL-to-Other or Other-to-IL program transformers
bullet IL obfuscators
bullet Static analysis tools for correctness or security analysis
bullet IL visualization tools

Curses and Warnings
Curses and Warnings

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. 


Using the Abstract IL Libraries:

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. 


Future work:

bullet

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.


©2008 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement