Conversation
Co-authored-by: RandomCrocodile <mawi@polosab.com>
* fix WPF relative resource renaming * Update Confuser.Renamer/Analyzers/WPFAnalyzer.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Ryan <smbserv@qq.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add types in referencing assembly to netstandard DLL. Types defined in AssemblyRefs of netstandard (e.g. mscorlib) will be moved to netstandard. Therefore, subsequence ModuleDef.Find will return AssemblyRef to netstandard. As a result, the confused module will only reference to netstandard. * Remove AssemblyAttributes.PA_NoPlatform from assembly. Net standard project may refer to NuGet package (e.g. System.ComponentModel.Composition) in order to use the Framework libraries. However, DLL in NuGet may have this attribute set but the actual Framework DLL does not. As a result, dnlib treats them as different assemblies and confused DLL will reference to two identical assemblies. * Fix assembly reference to assemblies that hidden by netstandard assembly. TargetModule.GetAssemblyRef returns null if type is defined in assembly hidden by netstandard. This change searches assemblies hidden by netstandard and returns the fixed type reference. * Returns the method from CorLib of module to be confused instead from runtime. MSBuild may runs on .net framework and runtime help will reference to mscorlib instead of netstandard. This change try resolve it from CorLib before from runtime type. --------- Co-authored-by: KC Ip <kamchuen.ip@hidglobal.com>
) (#32) Co-authored-by: RandomCrocodile <mawi@polosab.com>
… (#33) When preserveGenericParams is true but name is null or empty, ParseGenericName would crash. Add a null/empty guard to prevent this. Cherry-pick of mkaring#516. Co-authored-by: RandomCrocodile <mawi@polosab.com>
注意到 mkaring 在 1.4.0版本中对控制流保护做出了误操作(272行) 将src => statementLast.Contains(src),错误修改成了src => !statementLast.Contains(src),导致了保护后的程序出现了错误的循环,这里特此做出修复! Co-authored-by: wujiayang2007 <52036257+wujiayang2007@users.noreply.github.com>
) (#35) Cherry-pick of mkaring#481 — allows using wildcards like *.dll in module paths to batch-load modules from the base directory. The Load method now accepts an optional baseDirRoot parameter to resolve relative base directory paths. New internal helpers AddModule, IsWildcard, and BatchLoadModules handle wildcard expansion using Directory.GetFiles with TopDirectoryOnly search. Co-authored-by: RandomCrocodile <mawi@polosab.com>
…ttributed types and members (#38) Detect serialization-related attributes and exclude decorated types and members from renaming to prevent WCF/DataContract serialization breakage at runtime. Attributes now checked: - DataContractAttribute on types - DataMemberAttribute on fields and properties - EnumMemberAttribute on enum fields Fixes mcpolo99/private-ConfuserEx#9 Upstream: mkaring#147 Co-authored-by: RandomCrocodile <mawi@polosab.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…serialization (#39) Co-authored-by: RandomCrocodile <mawi@polosab.com>
Co-authored-by: RandomCrocodile <mawi@polosab.com>
Co-authored-by: RandomCrocodile <mawi@polosab.com>
…for external types (#42) Co-authored-by: RandomCrocodile <mawi@polosab.com>
…portedException (#43) Co-authored-by: RandomCrocodile <mawi@polosab.com>
#44) Co-authored-by: RandomCrocodile <mawi@polosab.com>
…#45) Co-authored-by: RandomCrocodile <mawi@polosab.com>
Co-authored-by: RandomCrocodile <mawi@polosab.com>
…erage (#51) Co-authored-by: RandomCrocodile <mawi@polosab.com>
Co-authored-by: RandomCrocodile <mawi@polosab.com>
) (#56) Co-authored-by: RandomCrocodile <mawi@polosab.com>
…odernize (#57) Co-authored-by: RandomCrocodile <mawi@polosab.com>
#58) Co-authored-by: RandomCrocodile <mawi@polosab.com>
…fferent signatures to same name (#25)
…ting violations (#49)
added 4 commits
June 10, 2026 10:57
…including net20 (#49)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #49
Custom Analyzers (Confuser.Analyzers project)
module.Import(typeof(X).GetMethod(...))— host runtime importResolveTypeDef()/ResolveMethodDef()result used without null checkResolveThrow/ResolveTypeDefThrowusage auditAssembly.GetTypes()withoutReflectionTypeLoadExceptioncatchViolations Fixed
CX004:
PluginDiscovery.cs— catchReflectionTypeLoadException, continue with loaded typesComponentDiscovery.cs— same fix for GUI discoveryCX002:
VTableAnalyzer.cs:355-356— null guard on two unprotectedResolveTypeDef()callsCX001: Already fixed by PR #31 (
Utils.Importresolves via CorLib). Analyzer prevents regressions.Integration
Confuser.Analyzersproject (netstandard2.0) added to solutionConfuserEx.Common.targetsProjectReference withOutputItemType=AnalyzerMSBuildProjectNamecondition