2016-05-28 62 views
2

我使用ConfuserEx發佈之前混淆我的計劃,我希望程序顯示一個警告,如果它正在運行不混淆。以減少未被混淆的可執行文件被運送的機會。 所以在運行時,我想要一個函數返回true/false取決於是否應用了模糊處理。如何以編程方式檢測VB.NET混淆?

+1

誰能爲什麼你失望投票有何看法?這似乎是完全合理的問題。 –

+0

混淆器應該發出[assembly:ObfuscateAssemblyAttribute]。如果您不知道自己的行爲是否存在,或者您找不到,請聯繫供應商的支持以獲取正確的方式。 –

+0

我是新來的反射,我將如何測試裝配:ObfuscateAssemblyAttribute? –

回答

1

我可以看到這樣做有兩種方式。

如果使用模糊處理過程是把加密部分的發佈版本的一部分,因此你的發佈版本已經內置指令,你可以做這樣的事情。

AppValidator.Validate() 

驗證將驗證它是一個發佈版本或者如果不是,該應用程序運行允許的用戶(DEV。團隊爲例)。

我還添加了一種通過命令行來驗證調用Myapp.exe的驗證

不過。這不驗證混淆,它驗證應用程序處於發佈模式。

你混淆,如果嵌入的發佈版本,應該如果他不能混淆發行版本或該驗證的前提是不好的失敗。

Public Class AppValidator 
#If DEBUG Then 
Private Shared ReadOnly IsDebugVersion As Boolean = True 
#Else 
private Shared ReadOnly IsDebugVersion As Boolean = False 
#End If 

Private Shared ReadOnly ISValidUser As Boolean = ValidateDevUser() 


''' <summary> 
'''  Validate the user is authorized to run the program as 
''' </summary> 
''' <returns></returns> 
Private Shared Function ValidateDevUser() As Boolean 
    Try 
     ' Custom validation to determine if used in dev. environment such 
     'as validating username and domain name or checking agains Dev. Registry key 
    Catch ex As Exception 
     Return False 
    End Try 
    Return True 
End Function 

Public Shared Function Validate() As Boolean 
    Dim Args = Environment.GetCommandLineArgs 
    Dim ConsoleValidate As Boolean = Args.Count = 2 AndAlso String.Compare(Args(1), "validate") = 0 


    If IsDebugVersion Then 
     If ConsoleValidate Then 
      Console.WriteLine(Not IsDebugVersion) 
      Application.Current.Shutdown() 
      Return False 
     End If 

     If Not ValidateDevUser() Then 
      MessageBox.Show("Access Denied") 
      Application.Current.Shutdown() 
      Return False 
     End If 

    End If 

    Return True 
End Function 
End Class 

第一個解決方案是最好的,如果你可以肯定的是,如果發行版製作和混淆步驟失敗構建將失敗。

如果你不能確定,你可以看看Red-gate的 Obfuscation checker,它是免費的,它有一個命令行,並且可以直接執行你所尋找的任務。

+0

謝謝,我喜歡你的驗證邏輯例子。但我確實想檢查實際的混淆,而不是假設它在構建過程中正確應用。 –

+0

檢查我的文章末尾的鏈接:Obfucation Checker是一個由紅門提供的免費工具,它允許您直接進行搜索。 –

+1

謝謝,我是通過試圖反彙編exe來手動檢查的。紅門工具看起來很有用,但我擔心它只是他們混淆產品的營銷工具,因此低估了其他人混淆工具的結果。我最初要求在運行時進行檢查,因此如果運行非混淆版本,我可以顯示錯誤。此外,程序可以記錄沒有混淆。我仍然沒有解決方案。 –

相關問題