Research based on the .NET Runtime
http://www.mattwarren.org/2019/10/25/Research-based-on-the-.NET-Runtime/ [www.mattwarren.org]
2019-10-27 04:41
tags:
compsci
dotnet
jit
links
paper
Over the last few years, I’ve come across more and more research papers based, in some way, on the ‘Common Language Runtime’ (CLR). So armed with Google Scholar and ably assisted by Semantic Scholar, I put together the list below.
"Stubs" in the .NET Runtime
http://www.mattwarren.org/2019/09/26/Stubs-in-the-.NET-Runtime/ [www.mattwarren.org]
2019-09-26 20:14
tags:
article
compiler
csharp
dotnet
jit
programming
‘Stubs’, as they’re known in the runtime (sometimes ‘Thunks’), provide a level of indirection throughout the source code, there’s almost 500 mentions of them!
This post will explore what they are, how they work and why they’re needed.
"Stack Walking" in the .NET Runtime
http://www.mattwarren.org/2019/01/21/Stackwalking-in-the-.NET-Runtime/ [www.mattwarren.org]
2019-01-21 23:48
tags:
dotnet
investigation
programming
systems
The CLR makes heavy use of a technique known as stack walking (or stack crawling). This involves iterating the sequence of call frames for a particular thread, from the most recent (the thread’s current function) back down to the base of the stack.
The rest of this post will explore what it is, how it works and why so many parts of the runtime need to be involved.
Fuzzing the .NET JIT Compiler
http://www.mattwarren.org/2018/08/28/Fuzzing-the-.NET-JIT-Compiler/ [www.mattwarren.org]
2018-08-28 21:03
tags:
compiler
csharp
dotnet
fuzzing
jit
I recently came across the excellent ‘Fuzzlyn’ project, created as part of the ‘Language-Based Security’ course at Aarhus University. As per the project description Fuzzlyn is a: … fuzzer which utilizes Roslyn to generate random C# programs
https://github.com/jakobbotsch/Fuzzlyn
Taking a look at the ECMA-335 Standard for .NET
http://www.mattwarren.org/2018/04/06/Taking-a-look-at-the-ECMA-335-Standard-for-.NET/ [www.mattwarren.org]
2018-04-14 18:50
tags:
dotnet
programming
standard
The rest of this post will take a look at the standard, exploring the contents and investigating what we can learn from it (hint: lots of low-level details and information about .NET internals)