Adam Furmanek
Hacking C# from the inside - how to do anything in NET
#1about 6 minutes
Avoiding dynamic dispatch with static method invocation
Bypass polymorphism by generating intermediate language (IL) with the `call` instruction instead of `callvirt` to invoke a specific base class method.
#2about 4 minutes
How to await async void methods in C#
Implement a custom `TaskScheduler` and `SynchronizationContext` to enable awaiting `async void` methods and properly handle their exceptions.
#3about 14 minutes
Running raw machine code from a C# byte array
Explore two methods for executing machine code: using the `Marshall` API for managed delegates or by manually overwriting a method's body with a CPU jump instruction.
#4about 4 minutes
Hijacking methods by modifying metadata or machine code
Explore two techniques for method hijacking: either by overwriting the function pointer in the method descriptor or by injecting a jump instruction into the method's machine code.
#5about 6 minutes
Use case: Running an application on a different desktop
Apply method hijacking to the `CreateProcess` API by intercepting a constructor to specify a target desktop, a feature not exposed by the standard .NET API.
#6about 2 minutes
Use case: Handling unhandled exceptions on a thread
Prevent application crashes by hijacking the `Thread` constructor to automatically wrap the thread's starting logic in a try-catch block.
#7about 4 minutes
Handling the uncatchable StackOverflowException
Catch a `StackOverflowException` by using a WinAPI vectored exception handler to save and restore CPU registers, allowing the application to continue safely.
Related jobs
Jobs that call for the skills explored in this talk.
Featured Partners
Related Videos
C# 13 Unleashed: Live Demos of my Top 10 Cutting-Edge Features!
Ambesh Singh & Sachin Kumar
Exploring the Latest Features of .NET and C# by Building a Game
Rainer Stropek
Building a Compiler with C#
Florian Rappl
Tips, tricks and quirks in .NET
Paweł Łukaszuk
Down the Oregon Trail with Functional C#
Simon Painter
5 features that help you get the most out of C# 10
Louëlla Creemers
Programming secure C#/.NET Applications: Dos & Don'ts
Sebastian Leuer
Turbocharged: Writing High-Performance C# and .NET Code
Steve Gordon
From learning to earning
Jobs that call for the skills explored in this talk.
Software Engineer.NET / C# - Remote
Cybersecurity and Cyberintelligence Experts
Municipality of Madrid, Spain
Remote
€24-33K
Intermediate
API
CSS
HTML
+9
Cyber Security Content Engineer, Blue Team - Azure
TryHackMe
Charing Cross, United Kingdom
Remote
€46K
Intermediate
PHP
Bash
Azure
+2
Hacker in Residence - Civix.Cyber
CIVIX
Brussels, Belgium
Microsoft Active Directory
Scripting (Bash/Python/Go/Ruby)
Software Engineer C# ( Hybrid model )
Q Tech
Municipality of Madrid, Spain
€55-70K
Docker
Flutter
Terraform
Kubernetes
+1



