Error while Obfuscation
winman
Posts: 8
We have developed project using vb.net for our internal puproses and then we obfuscated it. It is throwing error as mentioned below.
“Public member ‘Var1’ on type ‘e’ not found.â€
Code:
Obfuscation tools we tried are –
1. SmartAssembly 6
2. PreEmptive Dotfuscator and Analytics CE (which has come with Visual studio 2012)
Without obfuscation exe is working fine.
Error is thrown while assigning variable ‘Var1’ in the sub-routine. If the code line is modified as below then obfuscated exe will work fine.
FrmMain.Var1= Row("ChangesDbName").ToString
We thought obfuscation is missing late binding & tried similar type of code in a small sample project. But that didn’t have any error. We have attached this small code. But due to its magnitude we can’t upload original project.
How can we trace the error?
“Public member ‘Var1’ on type ‘e’ not found.â€
Code:
Public Sub get_constants_from_DbList(ByRef frm As Object, ByRef sDbname As String) For Each Row As DataRow In CommonObj.DSCommonProc.Tables("dblist").Rows If StrComp(Row("DbName").ToString, sDbname, CompareMethod.Text) = 0 Then prg_id = Row("PrgId").ToString frm.Var1= Row("ChangesDbName").ToString frm.Var2 = Row("LoadTableName").ToString frm.Var3 = Row("ServerName").ToString Exit Sub End If Next End SubA form (named FrmMain) is passed to the parameter ‘frm’ from the calling procedure to this sub-routine. Var1, etc are public variables in that form.
Obfuscation tools we tried are –
1. SmartAssembly 6
2. PreEmptive Dotfuscator and Analytics CE (which has come with Visual studio 2012)
Without obfuscation exe is working fine.
Error is thrown while assigning variable ‘Var1’ in the sub-routine. If the code line is modified as below then obfuscated exe will work fine.
FrmMain.Var1= Row("ChangesDbName").ToString
We thought obfuscation is missing late binding & tried similar type of code in a small sample project. But that didn’t have any error. We have attached this small code. But due to its magnitude we can’t upload original project.
How can we trace the error?
Comments
what is merging function?
We can probably assume this is not the cause.
My next guess is that “FrmMain†is called by its name (Reflection). This can be the case even if you don’t explicitly use Reflection on your case (Remoting, Serilization, Data-binding,etc.)
You need to exclude it from obfuscation.
Please take a look at the following for help ion how to do this:
http://www.red-gate.com/supportcenter/c ... ting_build