WPF與混淆器

2021-09-05 19:36:36 字數 2064 閱讀 3332

時至今日,混淆依然是

.net

程式的一道重要保護手段,而混淆器對

wpf應用程式的支援是怎樣的呢?我們今天就通過例項講解一下。

首先建立如下圖所示的簡單的使用者介面:

在介面**中設定一些繫結屬性:

在後台**中首先定義乙個種族列舉,以便於在列表中使用:

下面在窗體

window1

類中定義以下屬性:

紅圈處的**功能是將種族列舉的全部值載入到種族列表屬性中,這樣就可以在前後臺一直以統

一、優雅的方式使用列舉,這是個不錯的小技巧。

接下來在建構函式中直接硬編碼一些屬性的值,然後將自己作為自己的

…玩魔獸的朋友們請勿喧嘩

….現在編譯並執行程式,可以看到資料被很好地反映到了介面上:

ok,接下來就是主角了,我們將以

dotfuscator professional edition 4.3 evaluation

為例來進行介紹。

開啟dotfuscator

後直接新建專案,載入我們編譯好的程式,然後直接進行混淆和輸出,執行輸出後的程式:

嗯,什麼資料都沒顯示出來,為什麼呢?

據我的理解就是,混淆器目前還沒法解析及修改

xaml

檔案,致使混淆後的後台**與前台

xaml

介面描述不匹配,比如「

」之類的語句根本無法與混淆後的**關聯,所以就全部都無法顯示。

以下顯示了部分混淆的對映結果:

其中灰色底色的項代表已被從程式中移除,其他的都有對應的混淆後的名稱。

現在,要使混淆後的程式正常工作,我們就必須向

xaml

妥協。

你可能首先想到的是恢復上面被刪除的那幾個與介面相關的屬性,但是我嘗試過,那並不起作用。

而只要禁止對

window1

類的混淆,問題就基本上解決了:

看看混淆的結果,大概能猜想出

dotfuscator

是自動將禁止混淆的類的公共屬性也加入到排除混淆行列的,那幾個屬性這次沒有被移除:

但我仍無法解釋為什麼當只禁止混淆屬性、不禁止混淆類時程式仍舊無法正常工作。

現在還有個問題,就是列表上顯示的是混淆後的列舉名稱,這很好處理,只要禁止混淆列舉的所有欄位就好了:

現在程式已完全恢復正常了,但是這與未經混淆的程式也沒有太大分別了,看看通過

reflector

解析的混淆後的程式:

總結:混淆技術原本已經算是比較完善了,而現在,

wpf又為之帶來了新的挑戰,我們只能期待各廠商能夠盡快跟進,讓

wpf程式也能受到全面的保護,為其未來的廣泛應用奠定基石。

powerbuilder pbd檔案混淆器原理探秘

今天在研究pbd檔案,突然想到pbd檔案混淆器。因為還沒看過它的原理,但是我已經大致猜測到了他的工作原理。比如我們寫上乙個if then else end if結構。if 1 1 then 這裡寫這麼多只是為了在p code段有足夠多的byte來做混淆。return aaaaaaaaaaaaaaa ...

C C 混淆點 與

是邏輯與運算子,是邏輯或運算子,都是邏輯運算子,兩邊只能是bool型別 與 既可以進行邏輯運算,又可以進行位運算,兩邊既可以是bool型別,又可以是數值型別 if a b 如果 a 為 false 整個表示式就為 false,不再計算 b 的值了。if a b 如果 a 為 false 整個表示式就...

jquery 與 html 取值混淆

下面都是正確的 但是 我之前的錯誤是 比如想取value值吧 可能這樣搞 thisbutton value得不到 然後想取前面乙個元素 用 thisbutton.prev 也得不到 屬於jquery的操作分別是便利 取值 文件操作等所以都要用 thisbutton deletrow this 傳進去...