Skip to content

Releases: sunnamed434/BitMono

BitMono Release v0.42.1

20 Jun 15:00
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

What's Changed

  • Unity IL2CPP global-metadata.dat protection: a global-metadata.dat parser and inspector (--inspect-metadata), an in-place metadata writer, and a metadata encryptor (--encrypt-metadata) with a
    matching native C++ decryptor reference — the encrypt↔decrypt round-trip is verified byte-perfect on a real Unity 6 build by @sunnamed434 (#276)
  • FullRenamer now renames virtual/interface methods by vtable slot (renaming the whole slot group together) instead of skipping them, so more methods get obfuscated without breaking overrides by @sunnamed434
  • Rewrote the reflection critical-member analysis for more accurate detection of members used via reflection (now handles GetILAsByteArray and more), backed by a runtime end-to-end test by @sunnamed434
  • New critical analyzers keep code working after obfuscation: SerializationCriticalAnalyzer (serialization members), UnitySerializationCriticalAnalyzer ([SerializeField]/Unity-serialized fields), and
    UnityStringInvokeCriticalAnalyzer (methods invoked by string, e.g. Invoke/SendMessage) are left unrenamed by @sunnamed434
  • New BITM0001 Roslyn analyzer warns protection/plugin authors against Context.Module.GetAllTypes() (a common footgun); it ships inside BitMono.Core so plugin authors get it in their own IDE by
    @sunnamed434
  • Replaced Newtonsoft.Json with a small cross-platform JSON helper (System.Text.Json on net6.0+) by @sunnamed434
  • Fixed: the vendored Echo assemblies are now packed into the BitMono.Core package, so using BitMono as a library no longer throws FileNotFoundException: Echo.DataFlow at runtime by @sunnamed434
  • Fixed: BitMono.Unity no longer ships the build-time CLI DLLs into the IL2CPP player build, which previously made IL2CPP builds hang at "Extracting script serialization layouts" by @sunnamed434
  • Docs & brand: reworked the exclude/criticals and developer pages, simplified and fixed outdated content, and refreshed the logo kit, README header, and docs logo/favicon by @sunnamed434
  • Docs now available at docs.bitmono.dev
  • CI: keep --skip-duplicate on the nuget.org push by @sunnamed434
  • Bump BenchmarkDotNet from 0.13.4 to 0.15.8 by @dependabot[bot] in #278
  • build(deps): Bump game-ci/unity-builder from 4 to 5 by @dependabot[bot] in #277
  • Bump Costura.Fody from 6.0.0 to 6.2.0 by @dependabot[bot] in #279
  • Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.6.0 by @dependabot[bot] in #284

Full Changelog: 0.41.1...0.42.1

BitMono Release v0.41.1

13 Jun 21:27
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

What's Changed

  • Plugins: drop your own protections as DLLs into a plugins folder and BitMono discovers and runs them like the built-ins, no rebuild required by @sunnamed434 (#227)
  • Plugins: skip a plugin built against a newer BitMono.API than the host (clear warning instead of a cryptic mid-run crash), log each plugin's version on load, and add a --plugins directory override by @sunnamed434 (#227)
  • Unity IL2CPP support: obfuscate the managed assembly before il2cpp.exe converts it, and automatically skip protections that can't run on IL2CPP (native code, calli, PE packers) — detected from the scripting backend, or forced with --il2cpp / "IL2CPP" by @sunnamed434 (#250)
  • Fix swapped log lines for skipped "deprecated" vs "obfuscation attribute" protections by @sunnamed434
  • Docs: modernized and simplified in a plainer, less AI-sounding voice, fixed the custom-protection API example (ExecuteAsync() / Context.Parameters.Members), corrected wrong protection names (BitTimeDateStamp, StringsEncryption), and refreshed stale version examples by @sunnamed434
  • CI: fail the release build when a package doesn't actually reach nuget.org, so a silent validation rejection no longer passes as green by @sunnamed434

Full Changelog: 0.40.0...0.41.1

BitMono Release v0.40.1

13 Jun 18:48
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

What's Changed

  • Fix .NET 9/10 startup crash (BadImageFormatException: Enclosing type(s) not found) after StringsEncryption by @sunnamed434 (#242, #226)
  • WPF support: rename the types XAML references and rewrite the compiled XAML (BAML) to match by @sunnamed434 (#212)
  • FullRenamer: fix generic member access (Foo<int>().Bar(), fields on generic types) breaking after renaming by @sunnamed434 (#220)
  • Don't rename compiler/runtime "magic" types (PolySharp polyfills, IsExternalInit, nullable attributes) by @sunnamed434 (#97)
  • MSBuild integration: set protections or a preset directly in the .csproj via BitMonoProtections / BitMonoPreset (no protections.json on disk) by @sunnamed434
  • CLI: -l/--libraries now accepts multiple dependency folders by @sunnamed434 (#152)
  • Add user-selected protection presets (--preset / "Preset": Minimal/Balanced/Maximum) by @sunnamed434
  • Post-obfuscation tips after each run by @sunnamed434 (#198)
  • Clearer error for AOT/Arm64 (e.g. .NET MAUI iOS) assemblies, plus .NET MAUI docs by @sunnamed434 (#223)
  • VB.NET / F# documented (works the same as C#) by @sunnamed434 (#201)
  • Native AOT documentation by @sunnamed434 (#220)
  • Publish to nuget.org via Trusted Publishing (OIDC) — no long-lived API keys by @sunnamed434
  • Rename interface methods alongside their implementations and async state machines by @AlpinePastoralist in #273
  • Produce consistent signatures and attributes for hook stubs by @AlpinePastoralist in #274
  • Fix the offsets of BitDecompiler and BitDotNet for x64 target by @baoan7090 in #275
  • Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #271
  • Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #270
  • Bump sphinx from 8.2.3 to 9.1.0 in /docs by @dependabot[bot] in #267
  • Bump sphinx-rtd-theme from 3.0.2 to 3.1.0 in /docs by @dependabot[bot] in #269

New Contributors

Full Changelog: 0.39.0...0.40.1

BitMono Release v0.39.0

07 Jan 12:04

Choose a tag to compare

What's Changed

  • Add --output-name CLI option to configure output filename (#109)
  • Fix can't find protections

Full Changelog: 0.38.1...0.39.0

Download BitMono

BitMono Release v0.38.1

06 Jan 20:45

Choose a tag to compare

What's Changed

  • Fixed Something went wrong! System.ArgumentException #268

Full Changelog: 0.38.0...0.38.1

Download BitMono

BitMono Release v0.38.0

31 Dec 13:50
0d526be

Choose a tag to compare

What's Changed

  • Breaking change: Replace Serilog, Autofac, pocket and Microsoft.* dependencies with minimal code by @sunnamed434 in #266
  • Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #264
  • Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #263
  • Bump actions/cache from 4 to 5 by @dependabot[bot] in #265

Final release of the 2025! Happy coming new year 🎉

Full Changelog: 0.37.0...0.38.0

Download BitMono

BitMono Release v0.37.0

07 Dec 16:36

Choose a tag to compare

What's Changed

  • Bump actions/checkout from 5 to 6 by @dependabot[bot] in #257
  • Adds .Net 10 Support by @hackingguy in #260
  • Fix unitypackage can't find CLI
  • Fix unitypackage DLLs is getting stripped
  • Add in docs how to test unitypackage
  • Fix copy-to-test-project.bat can't find CLI
  • (CI) Unity Build only on default branch

New Contributors

Full Changelog: 0.36.1...0.37.0

Download BitMono

BitMono Release v0.36.1

24 Nov 18:03

Choose a tag to compare

What's Changed

  • Bumped AsmResolver to 6.0.0-beta.5
  • Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #256
  • Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #255

Full Changelog: 0.36.0...0.36.1

Download BitMono

BitMono Release v0.36.0

19 Oct 14:07

Choose a tag to compare

What's Changed

  • Use AsmResolver's nightly version 6.0.0-development.254 (so be careful using this release, might be unstable, but also this AsmResolver version includes many bug fixes)
  • Upgrade net462 dependencies to fix immediate crash by @Bip901 in #245
  • Fix empty namespace always being renamed by @Bip901 in #244
  • Avoid renaming classes that are nested within critical classes, and compiler generated properties/fields by @Bip901 in #246
  • Improve the base type analyzer, making it more explicit by @Bip901 in #243
  • Add support for custom configuration file paths by @sunnamed434 in #248
  • Unity Engine Integration - Fixes #231 by @Nonanti in #237
  • Add strong name signing option '--strong-name-key' #229 by @sunnamed434 in #251
  • Improve reflection usage analysis by @sunnamed434 in #252
  • Bump sphinx from 7.4.7 to 8.2.3 in /docs by @dependabot[bot] in #253
  • More docs

New Contributors

Full Changelog: 0.35.6...0.36.0

Download BitMono

BitMono Release v0.35.6

11 Sep 18:04

Choose a tag to compare

What's Changed

  • Bumped dependencies and AsmResolver to latest version

New Contributors

Full Changelog: 0.35.5...0.35.6

Download BitMono