簡體   English   中英

使用 dll 關閉 wpf 應用程序

[英]Close wpf application using dll

我有一個 dll ,其中有一個“身份驗證”方法,用於檢查密碼是否有效,如下所示:

public static void AuthenticationExample(string password)
{
    if (PasswordIsValid(password))
        this.locked = false;
}

為了防止密碼被循環“破解”,我希望該方法在身份驗證失敗時使整個應用程序崩潰,如下所示:

public static void AuthenticationExample(string password)
{
    if (PasswordIsValid(password))
        this.locked = false;
    else
        Crash();
}

有沒有辦法做到這一點?

或者,保護 dll 的更好方法是什么?

關閉 WPF:

您可以只調用主 window 並關閉它或拋出自定義異常。

密碼保護:

我有同樣的問題。 最后,明白了無論做什么,都可以破解。 沒有什么是失敗的證明。 如果您的許可證驗證是在雲端完成的,例如將一些信息發送到服務器並接收回響應,則可以在一定程度上對其進行管理。

僅僅因為一切都可以被黑客入侵,並不意味着您必須讓您的產品敞開大門以供破解。 你可以添加一些障礙,這樣餅干就不難了。 如果產品值得付出努力,最終會有人破解它。

對於我的應用程序,我有 2 或 3 個許可步驟(這可以減慢黑客的速度,但不能阻止他/她)

  1. dll(例如,DLL-A),帶有用於驗證許可證的加密方法。 DLL-A 將被放置在工作目錄中。 除此之外,此 dll(例如 DLL-B)的副本也將作為嵌入式資源放置。

  2. 在運行時,當即將加載 DLL-A 時,將提取 DLL-B 並比較兩者的 hash。 這是為了確保 DLL-A 不被篡改。 如果 DLL-A 被篡改,則 DLL-B 將替換 DLL-A。

  3. 除了 dll 方法外,還將使用 XML 簽名文件。 這將在代碼中的某處得到驗證。

  4. 一個 C++ 本機庫,具有不同的加密方法。 這也將用於類似於 DLL-A /DLL-B 過程(步驟 1,2)。

因此,在我的應用程序中,我通常使用 3 到 4 種不同的許可證驗證方案。 都是獨立的。 即使一切都可以被黑客入侵和破壞,黑客將不得不厭倦嘗試入侵所有 4。每年,我都會更改我的許可方法並更新新的應用程序。 因此,這意味着每年,黑客都必須花費大量時間來破解它。 (這最終會讓他們感到沮喪)。

最重要的是,我還為我的應用程序(將憑據存儲在雲數據庫中的應用程序)進行了基於雲的驗證。 但是,仍然有一些客戶希望他們的應用程序在沒有連接到互聯網的情況下運行(由於某些安全原因)。

注意:最終一切都可以破解。 關鍵是你只是讓黑客很難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM