Offline license validation with signed keys, explained
Zero Heartbeat
Offline and air-gapped licensing in .NET: validating without a network
Zero Heartbeat
What Obfuscation Breaks: Reflection, Serialization, and What to Exclude
Zero Heartbeat
How to obfuscate a WPF app without breaking XAML data binding
Zero Heartbeat
Obfuscating a WinForms app without losing your designer resources
Zero Heartbeat
Obfuscating virtual and interface members: override chains, explicit implementations, and the MethodImpl table that ties them together
Zero Heartbeat
Obfuscating a type you serialize with System.Text.Json: [JsonPropertyName] is the contract, the renamed property is not
Zero Heartbeat
Obfuscating source-generated code: why System.Text.Json contexts, [GeneratedRegex] and [LoggerMessage] survive renaming — and the one name they leak
Zero Heartbeat
Obfuscating a Roslyn source generator: why the generator renames freely but the attribute and the public constructor are pinned
Zero Heartbeat
Obfuscating a .NET app that uses AutoMapper, MediatR and FluentValidation
Zero Heartbeat
Obfuscating readonly structs, in parameters, and ref returns: the modreqs and compiler attributes Nebula must not strip
Zero Heartbeat
Obfuscating a PowerShell binary module: the cmdlet name lives in an attribute, but the parameter names are your property names
Zero Heartbeat
Obfuscating a plugin host without breaking the plugin contract
Zero Heartbeat
Obfuscating P/Invoke and DllImport code without breaking native interop
Zero Heartbeat
Obfuscate only on your build server (keep developer builds clean)
Zero Heartbeat
How to obfuscate a NuGet package before you publish it
Zero Heartbeat
Obfuscating a type you serialize with Newtonsoft.Json: [JsonProperty] is the contract, and TypeNameHandling''s $type is a landmine
Zero Heartbeat
Obfuscating .NET Native AOT and single-file apps
Zero Heartbeat
Obfuscating a multi-targeted assembly: one config across net48 and net8.0
Zero Heartbeat
Obfuscating a multi-project .NET solution: one consistent protection strategy
Zero Heartbeat
Obfuscating an assembly your tests still have to pass: InternalsVisibleTo and friend assemblies
Zero Heartbeat
Obfuscating a gRPC service without breaking the contract on the wire
Zero Heartbeat
Obfuscating generics: renaming type parameters, and the constraints and reflection that pin the names down
Zero Heartbeat
Obfuscating an F# assembly: discriminated unions, the [CompilationMapping] attribute, and what FSharp.Core reflects on
Zero Heartbeat
Obfuscating enums: why the names survive renaming, and how ToString() and switch leak them
Zero Heartbeat