우리는 내부 목적으로 vb.net을 사용하여 프로젝트를 개발 한 후 난독 화했습니다. 아래에 설명 된대로 오류가 발생하고 있습니다.난독 화 중 오류
"을 (를) 찾을 수 없습니다 public 멤버 'VAR1'유형에 'E'."
코드 : 호출 프로 시저에서 매개 변수 'FRM'에 전달됩니다 (frmMain 수라는 이름의)
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 Sub
양식 이 서브 루틴에 Var1 등은 해당 형식의 공용 변수입니다. 우리가 시도
난처 도구입니다 -
SmartAssembly 6
난처 EXE없이
(비주얼 스튜디오 2012와 함께왔다)
선제 Dotfuscator 및 분석 CE가 작동 벌금.
변수 'Var1'을 서브 루틴에 할당하는 동안 오류가 발생합니다. 코드 줄이 아래와 같이 수정되면 난독 화 된 exe가 정상적으로 작동합니다.
FrmMain.Var1 = 행 ("ChangesDbName"). ToString
우리는 난독 늦게 & 작은 샘플 프로젝트에서 코드의 유사한 유형을 시도 구속력없는 생각했다. 그러나 그것은 어떤 오류도 없었습니다. 이 작은 코드를 첨부했습니다. 그러나 그 규모 때문에 우리는 독창적 인 프로젝트를 업로드 할 수 없습니다.
어떻게 오류를 추적 할 수 있습니까?
당신은 반사/동적/후기 바인딩으로 난처을 사용하지 마십시오 내 샘플 애플리케이션의 소스 코드 here
내부 응용 프로그램입니다. 그리고 소스 코드를 게시했습니다. 어떤 점이 그것을 알아 듣지 못하게 남겨 둡니까 ??? –
이것은 오류 –
eazfuscator를 가져 오는 샘플 코드입니다.net은 동일한 오류를 발생시킵니다. (난독 화되었을 때) – Rob