下载地址: http://chengg0769.download.csdn.net/  最上面一个,注意因为不能删除,所以其他的标明作废的不要下载。
 
无csdn账号的请在公共下载站下载:
http://www.onlinedown.net/soft/15463.htm (我会通过作者平台更新)
http://www.newhua.com/soft/15463.htm (我会通过作者平台更新)
http://xintong.newhua.com:82/soft/15463.htm  (我会通过作者平台更新)
 
 
其他下载站:
http://skycn.com/soft/57984.html  (我会通过作者平台更新)
 
 
mysite:  (仅供发布时提供给下载站用,因租用空间对流量有限制,请勿外链到下面两个地址)

 
 
关键字:powerbuilder,pbd,dll,pbd混淆器,pbd加密器,pbd反混淆,pbd反编译,pb反编译,pbkiller,powershield
pb protect,pbprotect,pb obfuscator,powerbuilder obfuscator,pb decompiler,powerbuilder防止反编译,obfuscator for PowerBuilder,PowerBuilder obfuscator
 
常见的关于Powerbuilder加密与保护的命题如下:
/*--------------------------------------------------
关于PB程序加密(包括PBD伪代码方式)
PB防反编译
pb加密与解密
PB 编译、反编译、反反编译
pbzip pb防反编译封包工具
powerbuilder程序如何对抗shudepb
PB反编译工具
PowerBuilder程序暴力破解
自己做的一个PB反编译器
DePB 针对PowerBuilder语言编写的程序进行反编译
PBKiller v2.5.18
pb程序有哪些反编译,反破解的方法
PowerBuilder shudepb反汇编利器
PBKiller2.5.18及PB加密器下载
针对Powerbuilder的硬加密套件
PowerBuilder 的编译文件PBD加密程序
反编译PowerBuilder语言程序的工具
*/---------------------------------------------------

 

 pbobfuscator v2010.05.3(Powerbuilder-pbd文字移除与代码混淆加密器)
build 2010.05.19 23:52
支持版本:
pkb2.5
pb5,6,7,8,9,10,10.5,11,11.5,12
版本为pbvm.dll的版本,如pbvm115.dll。而不是指开发工具的版本。因为一个vm支持多个细微版本。
 
用于powerbuilder5-12的代码混淆和加密。做这程序的目的很简单,因为我一直在用powerbuilder做项目。时间大约有5年了。
曾撰文把pb比作钥匙链上的指甲剪,随拿随用,方便简单,但又不乏强大。防止破解是软件发行时最关心的问题。
 
自2009.6开始研究pbd文件格式。同期开始开发反编译器,现已基本成熟,因为有一些顾虑(不知道如何授权以及仅授权给需要的用户),
所以暂未释出。2010.3月研究PowerShield1.0简易版,并成功反混淆(估计是简易版的缘故,否则我不会感叹太容易反混淆)也撰文提到
PowerShield1.0简易版可能留有后门和安全系数不高的问题。PowerShield有点像三打祝家庄里的白杨树,一旦测试一个程序的不同加密
强度,其转弯标识清晰可见。如果在分析时设置一个检查栈,并适配假跳的规律,即可反混淆。尤以区分行间与行内为一个重要技巧,可完美反混淆。具体文字可见我blog中述。
 
其中代码混淆部分的思路参考LJTT的PowerShield1.0简易版,在此表示敬仰和感谢。鉴于pbkiller对pb9以下的程序造成极大伤害,
倒不是pbkiller有什么不对,关键在于它的授权泛滥。所以也给了极高的关注并在混淆时想办法加于克制。并对kivens表示敬仰。只要用
过混淆器的,pbkiller应该都不起作用。还有他对longlong类型的不支持,对unicode版本的不支持,基本无害,因为作者没针对性开发。把pb kill掉还要我们做什么呢?
 
主要特点:
1.修改了部分关键点参数,诱导早期的一些反编译器崩溃。没有人维护的反编译器就让他退出破解的应用场合吧。至于工程恢复,那是另话。

2.代码混淆部分原理参考LJTT的PowerShield1.0简易版,并在其基础上扩展出一些新的方式。还有些东西在脑子里,暂未实现。
        2.1加入随机变化因子,这样使得反混淆器算法难度增加;
        2.2增加了欺骗和逻辑陷阱,这些陷阱靠人眼是可以分析和发现的,但因为人脑是有逻辑思维能力,而靠编程是无法去理解我伪造的假代码的逻辑性的。从而会陷入我预设的逻辑陷阱中。
 
        Beta后会扩展:
        2.3在当前的工作基础上(9种)增加至36种(or 100种)左右的混淆方式,并限制在单机能测试到所有混淆方式,这样开发反编译器的人因为无法测试到所有可能性,从而加大反混淆的难度。最主要是混杂一些看似是正常代码的假跳转,(包括直接伪造本地变量参与的表达式,让人难辨真伪)相似性越高,越不容易判定,致使反混淆无法运用程序进行归纳识别。
        2.4混淆前,查看变量列表中有否有一些可利用的变量,如int,long类型,可以进行伪造假的代码并添加进来与真实代码混杂在一起,或者对真实代码形成包裹与混杂,相似性更高。
        2.5将多种方式离散在多个发行版本中。从而让反编译器无所适从。离散也包括按机器特征,时间,版本,授权种类等。尽量分散。
        2.6其他动态语言的混淆器还没去参考,因为想先有个基本实现。java,c#等的混淆器应该已经很成熟,可以借鉴。
        2.7还将在更多的数据段进行伪造。伪造的一个好处是,想反编译必须得先理顺并归置到伪造前。这个有点难。还有一个公理是:pb执行时是动态的,他用到的才会去呼叫并调用内存。而伪造的绝对不会被呼叫。但,但,反编译器并不知道,所以任何东东都会去屁颠屁颠地分析。
        2.8数字和文字的等效替换,防止pj者直接搜索敏感位置。
        2.9考虑到我的实现受制于代码长度,可利用代码太少,版本差异等因素,想到可给编程者预留陷阱标志(混淆器代为扰乱),程序员在代码编写上主动防御,则混淆后真假难分,模糊程度更好,陷阱隐蔽性更好。
 
3.抹掉所有不必要的可视文字,如RefListObject文字,var变量名,function名字和参数等文字。如此反编译器只能重新命名,从而无法还原可读性。代码功能的阅读在没有备注的情况下,很大程度依赖变量名,函数名。我们都是程序员,这个道理都懂。因函数与时间都可能被全局呼叫或动态呼叫(写在引号内),所以目前暂未对函数和事件名字采取措施。处理上应该也相当麻烦。
 
4.增加了欺骗对象或函数。虽然借助对本软件的反复调试,反混淆器作者可以发现规律,但是因为欺骗对象带随机因子,在没有参考物的情况下,要校验一个对象的格式完整性和正确性,目前还没人有那个能力。除非就是到处用断言,总归很难判定。就如用视觉鉴别一瓶纯净水和一瓶汽油一样。反混淆器就会不小心陷入其中。
 
5.增加对象内函数或事件造假功能。因为考虑到反编译器会提供单点反编的调试开关,所以尽量细化到每个pbd文件,每个对象,每个函数事件,每段代码都可能出现阻止反编译器的有效手段。如果能轻易绕过,那岂不是白搭。上2.9就是居于这种考虑。除反混淆和反编译开发者外,一些使用反编译器的普通人是不知道反编译器为什么会中途异常退出的,因为他们没反编译器源码,也无法单步调试。他们对此种情况也无能为力(要的就是这种效果)。反编译器开发者也不会去为一个不确定的规律而修改程序。
 
6.对一些可有可无,但对pbd格式肉眼分析有帮助的地方都尽数抹掉了,从而增加肉眼人工分析的错觉感。我的原则是抹掉一切可抹掉之字节,扰乱一切可扰乱的字节。