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

正确跳到正常的代码分段,错误则调到随机位置,或者随机的代码行。

这样的代码是运行时决定的。是任何静态分析方法无法解析的。

综合上述,本工具是非常强大的。它也正经历众多的客户检验,经历近十年的时间检验。

 

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