This project is read-only.
1
Vote

Confusing C# for usage via MonoDroid (Xamarin)

description

None of elements was changed, just pressed "Confuse" button

Started at 14:08.
Loading...
Strong name key not specified.
Loading assemblies...
Analyzing assemblies...
Simplifying methods...
Analyzing Name Confusion...
Initializing Name Analyzer...
Analyzing IVT attributes...
Analyzing AndroidApplication2.dll...
Analyzing virtual inheritance...
Oops... Confuser crushed...

System.NullReferenceException
Message : Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Stack Trace :
bei Confuser.Core.Analyzers.VTable.GetVTable(NameAnalyzer analyzer, TypeDefinition typeDef, Dictionary2 tbls) in E:\Source\Public\Confuser\Confuser.Core\Analyzers\NameAnalyzer.Virtuals.cs:Zeile 240.
bei Confuser.Core.Analyzers.NameAnalyzer.ConstructVTable(TypeDefinition typeDef) in E:\Source\Public\Confuser\Confuser.Core\Analyzers\NameAnalyzer.Virtuals.cs:Zeile 349.
bei Confuser.Core.Analyzers.NameAnalyzer.ConstructVTable(TypeDefinition typeDef) in E:\Source\Public\Confuser\Confuser.Core\Analyzers\NameAnalyzer.Virtuals.cs:Zeile 348.
bei Confuser.Core.Analyzers.NameAnalyzer.Analyze(IEnumerable
1 asms) in E:\Source\Public\Confuser\Confuser.Core\Analyzers\NameAnalyzer.cs:Zeile 64.
bei Confuser.Core.Confuser.Initialize() in E:\Source\Public\Confuser\Confuser.Core\Confuser.cs:Zeile 593.
bei Confuser.Core.Confuser.Confuse(ConfuserParameter param) in E:\Source\Public\Confuser\Confuser.Core\Confuser.cs:Zeile 240.

Please report it!!!

comments

yck1509 wrote May 16, 2014 at 1:49 PM

I suggest using the latest version of Confuser at https://confuser.codeplex.com/releases/view/101015, or you could try the successor ConfuserEx at https://github.com/yck1509/ConfuserEx

hhblaze wrote May 16, 2014 at 2:31 PM

Thanx a lot!

hhblaze wrote May 16, 2014 at 3:10 PM

the only problem new confuser is really new...
no basic/advanced settings... old confuser project file also not readable... no docu..
Actually not clear how to use it now.

In previous confuser I had manually to set confusing rules on methods, otherwise DLLs were not working in special circumstnaces.

In this new confuser I don't have such ability to setup rules per methods?

yck1509 wrote May 17, 2014 at 2:24 PM

The rule system consists of multiple 'rule' that determine how the protections are applied.
Each rule have a RegEx 'pattern' to determine what items(classes/methods/fields/etc.) to be applied to.
For example, if you would like to exclude a class 'NS1.ABC' and method 'NS2.DEF.Method1' from obfuscation, you can have the following rules:

Rule 1:
Pattern: .*
This rule applies the selected protections to all items.

Rule 2:
Pattern: NS1.ABC
Inherit: False

Rule 3:
Pattern: NS2.DEF.Method1
Inherit: False

This above two rules apply to the excluded items. Since it doesn't inherit the result of previous rules, it would clear the protections of the item before appling its own protection.
The process of applying the rules is:
Processing rule 1 -> Add protections indicated in rule 1 (your desired protections) -> Processing rule 2 -> Inherit is false so clear the protections list -> Add protections indicated in rule 2 (no protections) -> Processing rule 3 -> ...

Hope it helps!

hhblaze wrote May 17, 2014 at 6:57 PM

Thank you, I will try

hhblaze wrote May 19, 2014 at 8:03 AM

For now works brilliant!!!