PB加密,PBD加密,杜絕PB程序反編譯

如下是一個pbd混淆加密之後用反編譯打開時的效果圖(混淆器已經開發了十年,其代碼混淆保護效果一直滿意,用圖說話)工具自2009年開發,2010年發佈測試版,經歷1-2年的測試改進,至最早的客戶從2012年開始使用正式版開始,已累計數萬次加密並消除了寫PBD文件的BUG從而穩定下來,從POS到ERP,從各種終端運用,到提供第三方PBD接口,不管是PBD還是DLL編譯模式,都通過實測證明其穩定運行了若干年。工具採用與文件,時間相關的動態因子,沒有人能以固定模式測試到所有的加密規律,除了算法升級外,內部算法因子也按時間自動隨機演進:

主要的措施如下(這是文檔裏面公開的,也就是說算法是經得起推敲的)

http://www.pbdecompiler.com

http://www.pbobfuscator.com

http://www.powerbuilder.ltd

1)變量變爲亂碼:

方式有隨機數變成ascii碼,下劃線,控制字符,數字,英文等。因爲變量名不對運行造成影響,所以實際擾亂後後的效果,非常亂。有些是成了亂碼字符串,有些被反編譯改成了var_n的方式顯示出來。

2)在代碼級別對其進行加密:

不是某些所謂加密工具,對pbd文件進行切割加工,待到運行時又出現組合。基本都是繞人的措施。

本工具從代碼級進行處理,將代碼事先切割成段,然後用代碼再組合起來,在組合時,插入一些釘子和陷阱。這種陷阱有幾種:

1>簡單的數學:

比如13812938123+239123891283=? 適合於代碼短,擴展空間有限的地方。

2>嵌入內部函數,比如 負號運行,min,max,integer,ceiling等等。比第一種就稍微複雜了。這樣的強度開始,反編譯幾乎就無法判定了。比如min(1024, varxxx)= 1024等。反編譯處理不了,只能原樣擺出來成爲奇怪的代碼。而正常的邏輯執行不受到影響。

3)混淆專用變量:

用常量參與計算非常容易被固定模式計算,所以採用向local var區域添加一個混淆專用的變量,可以是boolean或者long類型的。

新版中,已經能自動由工具插入一個這樣的變量了。也可以手工在源代碼中編寫(適合特別強保護的代碼)。

這個專用變量能被工具在加密時,動態改變它的值。也就是一邊賦值,一邊判斷。這個強度從理論和實踐中來看,是非常強大的。比如 long var_xx = 0

var_xx = 1024

var_xx *= 1024

if min(xxx,var_xx)=?? then

正確跳到正常的代碼分段,錯誤則調到隨機位置,或者隨機的代碼行(這個強大哦。反編譯看起來有goto語句。但是其實是隨機的!!!位置。壓根在源代碼邏輯中不存在那樣的跳轉。

4)自定義邏輯陷阱

通過程序員自己寫複雜的邏輯代碼來讓分析陷入死衚衕

比如 if myfun(var1,var2,var3,var4,var5)= myfun2(var1,var2) then

正確跳到正常的代碼分段,錯誤則調到隨機位置,或者隨機的代碼行。

這樣的代碼是運行時決定的。是任何靜態分析方法無法解析的。

綜合上述,本工具是非常強大的。它也正經歷衆多的客戶檢驗,經歷近十年的時間檢驗。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章