---
title: "#decompilation articles | Hashnode"
description: "Explore 48 articles tagged #decompilation on Hashnode. Tutorials, guides, and how-tos from the community."
url: "https://hashnode.com/tag/decompilation"
---

Tag

# #decompilation

48 posts · 0 followers

[Zero Heartbeat](https://hashnode.com/@clustron) · [2h ago](https://hashnode.com/posts/reading-top-level-statements-in-decompiled-c-the-synthesized-program-class-and-the-main-entry-point/6af57a03daa48e398b51db5a)

### [Reading top-level statements in decompiled C#: the synthesized Program class and the Main entry point](https://delta1labs.hashnode.dev/reading-top-level-statements-in-decompiled-c-the-synthesized-program-class-and-the-main-entry-point?utm_source=hashnode&utm_medium=feed)

A C# file that uses top-level statements looks like it has no class and no Main — you just write statements and the program runs. But an assembly has to have an entry point, and the metadata has to na

7 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/reading-top-level-statements-in-decompiled-c-the-synthesized-program-class-and-the-main-entry-point?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/decompiling-pinvoke-and-dllimport-reading-a-net-assemblys-native-interop/6af408b5251d5dfedd3cb24c)

### [Decompiling P/Invoke and DllImport: Reading a .NET Assembly''s Native Interop](https://delta1labs.hashnode.dev/decompiling-pinvoke-and-dllimport-reading-a-net-assemblys-native-interop?utm_source=hashnode&utm_medium=feed)

When you need to understand what an unfamiliar .NET assembly actually does — not to its own data, but to the machine — the native interop is where the answer lives. Managed code that stays inside the

4 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/decompiling-pinvoke-and-dllimport-reading-a-net-assemblys-native-interop?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/decompiling-a-blazor-webassembly-app-reading-the-net-dlls-the-browser-downloaded/6af405e79868be71ba1a7e32)

### [Decompiling a Blazor WebAssembly App: Reading the .NET DLLs the Browser Downloaded](https://delta1labs.hashnode.dev/decompiling-a-blazor-webassembly-app-reading-the-net-dlls-the-browser-downloaded?utm_source=hashnode&utm_medium=feed)

The first time someone opens the browser dev tools on a Blazor WebAssembly app and sees a \_framework folder full of .wasm files, it looks reassuringly opaque — like the compiled WebAssembly blob you c

4 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/decompiling-a-blazor-webassembly-app-reading-the-net-dlls-the-browser-downloaded?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/decompiling-readytorun-r2r-assemblies-why-precompiled-native-code-still-decompiles-cleanly/6af4035f12662e205ff2288b)

### [Decompiling ReadyToRun (R2R) Assemblies: Why Precompiled Native Code Still Decompiles Cleanly](https://delta1labs.hashnode.dev/decompiling-readytorun-r2r-assemblies-why-precompiled-native-code-still-decompiles-cleanly?utm_source=hashnode&utm_medium=feed)

If you have ever been handed a "precompiled" .NET assembly and assumed a decompiler would choke on it, ReadyToRun is the happy surprise. R2R is how .NET ships fast-starting code — the runtime librarie

4 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/decompiling-readytorun-r2r-assemblies-why-precompiled-native-code-still-decompiles-cleanly?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/decompiling-f-compiled-assemblies-in-a-c-decompiler-reading-unions-records-and-modules/6af3faa0ed4247242a6216ba)

### [Decompiling F#-Compiled Assemblies in a C# Decompiler: Reading Unions, Records, and Modules](https://delta1labs.hashnode.dev/decompiling-f-compiled-assemblies-in-a-c-decompiler-reading-unions-records-and-modules?utm_source=hashnode&utm_medium=feed)

If you have ever opened an F#-built DLL in a decompiler expecting to see let and match and instead found classes with names like Tag and NewCircle, this post is for you. F# and C# are different langua

6 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/decompiling-f-compiled-assemblies-in-a-c-decompiler-reading-unions-records-and-modules?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/decompiling-extension-methods-the-extension-attribute-is-the-only-trace-the-receiver-was-just-the-fi-mwaxzw77/6af34f28af6dce6d527f00dc)

### [Decompiling extension methods: the \[Extension\] attribute is the only trace, the receiver was just the first argument, and the call that looks static](https://delta1labs.hashnode.dev/decompiling-extension-methods-the-extension-attribute-is-the-only-trace-the-receiver-was-just-the-fi-mwaxzw77?utm_source=hashnode&utm_medium=feed)

An extension method is one of the purest examples of C# sugar that evaporates in IL. You write this on the first parameter, call it as text.WordCount(), and feel like you added a method to string. The

8 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/decompiling-extension-methods-the-extension-attribute-is-the-only-trace-the-receiver-was-just-the-fi-mwaxzw77?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/decompiling-extension-methods-the-extension-attribute-is-the-only-trace-the-receiver-was-just-the-fi/6af34dc186142e8d24facbb5)

### [Decompiling extension methods: the \[Extension\] attribute is the only trace, the receiver was just the first argument, and the call that looks static](https://delta1labs.hashnode.dev/decompiling-extension-methods-the-extension-attribute-is-the-only-trace-the-receiver-was-just-the-fi?utm_source=hashnode&utm_medium=feed)

An extension method is one of the purest examples of C# sugar that evaporates in IL. You write this on the first parameter, call it as text.WordCount(), and feel like you added a method to string. The

8 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/decompiling-extension-methods-the-extension-attribute-is-the-only-trace-the-receiver-was-just-the-fi?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/how-to-decompile-a-net-dll-to-c-2026-guide/6af327d132c05fd641d31efa)

### [How to decompile a .NET DLL to C# (2026 guide)](https://delta1labs.hashnode.dev/how-to-decompile-a-net-dll-to-c-2026-guide?utm_source=hashnode&utm_medium=feed)

To decompile a .NET DLL back to C#, open the assembly in a .NET decompiler such as Glass.NET, ILSpy or dotPeek — the tool reads the IL and metadata inside the DLL and reconstructs readable C# you can

8 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/how-to-decompile-a-net-dll-to-c-2026-guide?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/how-net-metadata-tables-work-and-how-a-decompiler-reads-them/6af327acfe1747997797ae2e)

### [How .NET metadata tables work — and how a decompiler reads them](https://delta1labs.hashnode.dev/how-net-metadata-tables-work-and-how-a-decompiler-reads-them?utm_source=hashnode&utm_medium=feed)

Open a .NET DLL in a hex editor and most of it is not code. Before the IL, before the resources, sits a compact relational database describing the assembly's own structure: its types, methods, fields,

6 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/how-net-metadata-tables-work-and-how-a-decompiler-reads-them?utm_source=hashnode&utm_medium=feed)

[Zero Heartbeat](https://hashnode.com/@clustron) · [1d ago](https://hashnode.com/posts/decompiling-yield-return-rebuilding-iterator-blocks-from-il/6af32798af2c2da7055bf4eb)

### [Decompiling yield return: rebuilding iterator blocks from IL](https://delta1labs.hashnode.dev/decompiling-yield-return-rebuilding-iterator-blocks-from-il?utm_source=hashnode&utm_medium=feed)

yield return is the quiet sibling of async/await. Both compile to a state machine; both replace the method you wrote with a generated class and an integer-driven MoveNext. But iterators came first — t

7 min read · [delta1labs.hashnode.dev](https://delta1labs.hashnode.dev/decompiling-yield-return-rebuilding-iterator-blocks-from-il?utm_source=hashnode&utm_medium=feed)
