From 81c468b2dae7eafe129e56ccd3c8ea6138fe0dd8 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Wed, 29 Apr 2026 21:48:07 +0200 Subject: [PATCH 01/10] Add publishing Nuget step --- .github/workflows/dotnet-desktop.yml | 13 +++++++ Confuser.Core/Confuser.Core.csproj | 1 + Confuser.DynCipher/Confuser.DynCipher.csproj | 1 + .../Confuser.MSBuild.Tasks.csproj | 2 +- .../Confuser.Protections.csproj | 38 +++++++++++++++++++ Confuser.Renamer/Confuser.Renamer.csproj | 1 + Confuser.Runtime/Confuser.Runtime.csproj | 1 + 7 files changed, 56 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index faaa1d9d..e5ef5818 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -133,4 +133,17 @@ jobs: artifacts\bin\ConfuserEx\${{ env.Configuration }}_net10.0-windows !artifacts\bin\ConfuserEx\${{ env.Configuration }}_net10.0-windows\*.pdb !artifacts\bin\ConfuserEx\${{ env.Configuration }}_net10.0-windows\*.xml + + - name: push to NuGet + # Only push to NuGet if we're building a tag (optional) + if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') + shell: pwsh + # Loop through all the packages in the output folder and push them to + # nuget.org, using the NUGET_API_KEY generated by the previous login step + run: | + Get-ChildItem artifacts\package\${{ env.Configuration }} -Filter *.nupkg | ForEach-Object { + dotnet nuget push $_.FullName ` + --api-key "${{ secrets.MYGET_CI_API_KEY }}" ` + --source https://www.myget.org/F/obfuscation/api/v3/index.json + } diff --git a/Confuser.Core/Confuser.Core.csproj b/Confuser.Core/Confuser.Core.csproj index 8599a005..028dd4a5 100644 --- a/Confuser.Core/Confuser.Core.csproj +++ b/Confuser.Core/Confuser.Core.csproj @@ -6,6 +6,7 @@ net472;net8.0 true + true diff --git a/Confuser.DynCipher/Confuser.DynCipher.csproj b/Confuser.DynCipher/Confuser.DynCipher.csproj index f9dbf160..20619be2 100644 --- a/Confuser.DynCipher/Confuser.DynCipher.csproj +++ b/Confuser.DynCipher/Confuser.DynCipher.csproj @@ -6,6 +6,7 @@ net472;net8.0 true + true diff --git a/Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj b/Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj index a802b1a9..3c5e3bba 100644 --- a/Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj +++ b/Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj @@ -12,7 +12,7 @@ ConfuserEx - MSBuild Integration This package contains the integration of ConfuserEx into the MSBuild build procedure. It allows automatically obfuscating the assemblies during the build. MIT - https://github.com/mkaring/ConfuserEx + https://github.com/kant2002/ConfuserEx Obfuscation Confuser ConfuserEx true false diff --git a/Confuser.Protections/Confuser.Protections.csproj b/Confuser.Protections/Confuser.Protections.csproj index 77899d8c..b07ddfef 100644 --- a/Confuser.Protections/Confuser.Protections.csproj +++ b/Confuser.Protections/Confuser.Protections.csproj @@ -6,7 +6,9 @@ net472;net8.0 true + true ..\Confuser.Runtime\Confuser.Runtime.csproj + $(TargetsForTfmSpecificContentInPackage);IncludeConfuserDependencyFiles @@ -26,6 +28,42 @@ + + + IncludeConfuserDependencyFilesFramework; + IncludeConfuserDependencyFilesStandard + + + + + + + + $(BaseOutputPath)$(ArtifactsPivots) + + + + + + + + + + + + + + + + + + + + true net472;net8.0 + true diff --git a/Confuser.Runtime/Confuser.Runtime.csproj b/Confuser.Runtime/Confuser.Runtime.csproj index 7efa1362..b075b0b3 100644 --- a/Confuser.Runtime/Confuser.Runtime.csproj +++ b/Confuser.Runtime/Confuser.Runtime.csproj @@ -7,6 +7,7 @@ net472;net8.0 true true + true From 29c470fee7c925ee553c9db0952e58930c35aceb Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Wed, 29 Apr 2026 22:10:52 +0200 Subject: [PATCH 02/10] Add README for Runtime project --- Confuser.Runtime/Confuser.Runtime.csproj | 5 +++++ Confuser.Runtime/README.md | 4 ++++ 2 files changed, 9 insertions(+) create mode 100644 Confuser.Runtime/README.md diff --git a/Confuser.Runtime/Confuser.Runtime.csproj b/Confuser.Runtime/Confuser.Runtime.csproj index b075b0b3..76e32965 100644 --- a/Confuser.Runtime/Confuser.Runtime.csproj +++ b/Confuser.Runtime/Confuser.Runtime.csproj @@ -8,6 +8,7 @@ true true true + readme.md @@ -15,6 +16,10 @@ Runtime library of ConfuserEx + + + + all diff --git a/Confuser.Runtime/README.md b/Confuser.Runtime/README.md new file mode 100644 index 00000000..640fef44 --- /dev/null +++ b/Confuser.Runtime/README.md @@ -0,0 +1,4 @@ +Confuser.Runtime +================ + +Runtime which is used by ConfuserEx to protect .NET assemblies. It contains the implementations of the anti-tamper and anti-debugging features, as well as the decryption logic for encrypted strings and resources. From 1cd59f52e6d4c9065e6a9f15c9d15c9d123c9400 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Wed, 29 Apr 2026 22:21:17 +0200 Subject: [PATCH 03/10] Add README files to packages --- Confuser.Core/Confuser.Core.csproj | 5 +++++ Confuser.Core/README.md | 4 ++++ Confuser.DynCipher/Confuser.DynCipher.csproj | 5 +++++ Confuser.DynCipher/README.md | 4 ++++ Confuser.Protections/Confuser.Protections.csproj | 5 +++++ Confuser.Renamer/Confuser.Renamer.csproj | 5 +++++ Confuser.Renamer/README.md | 5 +++++ Confuser.Runtime/Confuser.Runtime.csproj | 2 +- 8 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 Confuser.Core/README.md create mode 100644 Confuser.DynCipher/README.md create mode 100644 Confuser.Renamer/README.md diff --git a/Confuser.Core/Confuser.Core.csproj b/Confuser.Core/Confuser.Core.csproj index 028dd4a5..7e939181 100644 --- a/Confuser.Core/Confuser.Core.csproj +++ b/Confuser.Core/Confuser.Core.csproj @@ -7,6 +7,7 @@ net472;net8.0 true true + README.md @@ -14,6 +15,10 @@ Core framework of ConfuserEx + + + + diff --git a/Confuser.Core/README.md b/Confuser.Core/README.md new file mode 100644 index 00000000..dec451c0 --- /dev/null +++ b/Confuser.Core/README.md @@ -0,0 +1,4 @@ +Confuser.Core +================ + +Core framework of ConfuserEx. It contains the core services and obfuscation process support logic. Project support, compression using LZMA. diff --git a/Confuser.DynCipher/Confuser.DynCipher.csproj b/Confuser.DynCipher/Confuser.DynCipher.csproj index 20619be2..cfc707bc 100644 --- a/Confuser.DynCipher/Confuser.DynCipher.csproj +++ b/Confuser.DynCipher/Confuser.DynCipher.csproj @@ -7,6 +7,7 @@ net472;net8.0 true true + README.md @@ -14,6 +15,10 @@ Cipher generator of ConfuserEx + + + + diff --git a/Confuser.DynCipher/README.md b/Confuser.DynCipher/README.md new file mode 100644 index 00000000..6fd055da --- /dev/null +++ b/Confuser.DynCipher/README.md @@ -0,0 +1,4 @@ +Confuser.DynCipher +================ + +Dynamic cipher library for ConfuserEx. diff --git a/Confuser.Protections/Confuser.Protections.csproj b/Confuser.Protections/Confuser.Protections.csproj index b07ddfef..7ce384c0 100644 --- a/Confuser.Protections/Confuser.Protections.csproj +++ b/Confuser.Protections/Confuser.Protections.csproj @@ -8,6 +8,7 @@ true true ..\Confuser.Runtime\Confuser.Runtime.csproj + README.md $(TargetsForTfmSpecificContentInPackage);IncludeConfuserDependencyFiles @@ -16,6 +17,10 @@ Protections and packers of ConfuserEx + + + + diff --git a/Confuser.Renamer/Confuser.Renamer.csproj b/Confuser.Renamer/Confuser.Renamer.csproj index b03d66af..8f248ada 100644 --- a/Confuser.Renamer/Confuser.Renamer.csproj +++ b/Confuser.Renamer/Confuser.Renamer.csproj @@ -7,6 +7,7 @@ true net472;net8.0 true + README.md @@ -14,6 +15,10 @@ Renaming analysis of ConfuserEx + + + + diff --git a/Confuser.Renamer/README.md b/Confuser.Renamer/README.md new file mode 100644 index 00000000..f62cfba2 --- /dev/null +++ b/Confuser.Renamer/README.md @@ -0,0 +1,5 @@ +Confuser.Renamer +================ + +Renaming analysis of ConfuserEx. It contains the implementations of the renaming logic for protecting .NET assemblies. + diff --git a/Confuser.Runtime/Confuser.Runtime.csproj b/Confuser.Runtime/Confuser.Runtime.csproj index 76e32965..17ad654e 100644 --- a/Confuser.Runtime/Confuser.Runtime.csproj +++ b/Confuser.Runtime/Confuser.Runtime.csproj @@ -8,7 +8,7 @@ true true true - readme.md + README.md From 13e5852377098c21c2e31f7ebf053469438fe3af Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Wed, 29 Apr 2026 22:26:45 +0200 Subject: [PATCH 04/10] Add missing package README --- Confuser.Protections/README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 Confuser.Protections/README.md diff --git a/Confuser.Protections/README.md b/Confuser.Protections/README.md new file mode 100644 index 00000000..40092197 --- /dev/null +++ b/Confuser.Protections/README.md @@ -0,0 +1,4 @@ +Confuser.Protection +================ + +Confuser.Protection is a library that contains the implementations of the protection logic for protecting .NET assemblies. It includes various protection techniques such as control flow obfuscation, anti-debugging, anti-tampering, and more. Each protection technique is implemented as a separate class that inherits from the `Protection` base class, allowing for easy integration and customization within the ConfuserEx framework. From a5970b7b3edfd8e90699a79f1741fe392b5b9798 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Wed, 29 Apr 2026 22:36:18 +0200 Subject: [PATCH 05/10] Remove Nowarnig --- Directory.Build.props | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Build.props b/Directory.Build.props index 5d49da36..38d5defc 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,6 +2,7 @@ true + $(NoWarn);NU1702 From d32c81928f96441a5c349de3db14b5dd7cffca15 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Wed, 29 Apr 2026 22:44:25 +0200 Subject: [PATCH 06/10] Use only .NET 10 --- .github/workflows/dotnet-desktop.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index e5ef5818..b3abb676 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -62,8 +62,6 @@ jobs: uses: actions/setup-dotnet@v5 with: dotnet-version: | - 6.0.x - 8.0.x 10.0.x # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild From 804d154a625a8fe2aa7244b38d9737b5cdde3f27 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Thu, 30 Apr 2026 11:05:59 +0200 Subject: [PATCH 07/10] 1 --- Directory.Build.props | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Directory.Build.props b/Directory.Build.props index 38d5defc..3859f6e2 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -21,4 +21,9 @@ GitHub $(RepositoryUrl) + + + + + From 221a08401a26adc15a972df2c63712d729f1a167 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Thu, 30 Apr 2026 11:31:23 +0200 Subject: [PATCH 08/10] 2 --- Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj | 2 +- Confuser.Protections/Confuser.Protections.csproj | 10 ++++------ .../Confuser.MSBuild.Tasks.Tests.csproj | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj b/Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj index 3c5e3bba..68e0c849 100644 --- a/Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj +++ b/Confuser.MSBuild.Tasks/Confuser.MSBuild.Tasks.csproj @@ -30,7 +30,7 @@ - + diff --git a/Confuser.Protections/Confuser.Protections.csproj b/Confuser.Protections/Confuser.Protections.csproj index 7ce384c0..6f311a32 100644 --- a/Confuser.Protections/Confuser.Protections.csproj +++ b/Confuser.Protections/Confuser.Protections.csproj @@ -24,7 +24,7 @@ - + @@ -61,8 +61,8 @@ DependsOnTargets="CollectRuntimeOutputs" Condition="'$(TargetFramework)' == 'net8.0'"> - - + + @@ -71,9 +71,7 @@ - + diff --git a/Tests/Confuser.MSBuild.Tasks.Tests/Confuser.MSBuild.Tasks.Tests.csproj b/Tests/Confuser.MSBuild.Tasks.Tests/Confuser.MSBuild.Tasks.Tests.csproj index 596dede9..1b9863b2 100644 --- a/Tests/Confuser.MSBuild.Tasks.Tests/Confuser.MSBuild.Tasks.Tests.csproj +++ b/Tests/Confuser.MSBuild.Tasks.Tests/Confuser.MSBuild.Tasks.Tests.csproj @@ -31,7 +31,7 @@ - + From 0009853e2f9d1078928bbefb6dff4b7d05433f1d Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Thu, 30 Apr 2026 13:18:11 +0200 Subject: [PATCH 09/10] 1 --- .github/workflows/dotnet-desktop.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml index b3abb676..ae7a2c52 100644 --- a/.github/workflows/dotnet-desktop.yml +++ b/.github/workflows/dotnet-desktop.yml @@ -70,12 +70,12 @@ jobs: # Restore the application to populate the obj folder with RuntimeIdentifiers - name: Restore the application - run: msbuild ${{ env.SolutionPath }} /t:Restore /p:Configuration=${{ env.Configuration }} /p:Platform=x64 /v:m + run: msbuild ${{ env.SolutionPath }} /t:Restore /p:Configuration=${{ env.Configuration }} /p:Platform=x64 /v:m /bl:artifacts/logs/restore.binlog env: Configuration: Release - name: Build - run: msbuild ${{ env.SolutionPath }} /p:Configuration=${{ env.Configuration }} /p:Platform=x64 /v:m + run: msbuild ${{ env.SolutionPath }} /p:Configuration=${{ env.Configuration }} /p:Platform=x64 /v:m /bl:artifacts/logs/build.binlog - name: Setup VSTest uses: Malcolmnixon/Setup-VSTest@v4 @@ -131,6 +131,13 @@ jobs: artifacts\bin\ConfuserEx\${{ env.Configuration }}_net10.0-windows !artifacts\bin\ConfuserEx\${{ env.Configuration }}_net10.0-windows\*.pdb !artifacts\bin\ConfuserEx\${{ env.Configuration }}_net10.0-windows\*.xml + + - name: Upload Build log artifacts + uses: actions/upload-artifact@v6 + with: + name: logs + path: | + artifacts\logs\*.binlog - name: push to NuGet # Only push to NuGet if we're building a tag (optional) From f77e704616994836b857f668ebd1dbf44bd403a9 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Thu, 30 Apr 2026 13:23:31 +0200 Subject: [PATCH 10/10] 2 --- Confuser2.slnx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Confuser2.slnx b/Confuser2.slnx index fd747489..dfe9f2dd 100644 --- a/Confuser2.slnx +++ b/Confuser2.slnx @@ -84,10 +84,10 @@ - - - + + +