`
buliedian
  • 浏览: 1280451 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Powerbuilder混淆与加密器(powerbuilder防止反编译,pb混淆器,支持5-12) obfuscator for PowerBuilder

阅读更多

正式版购买请参考:http://www.mis2erp.com http://www.pb-obfuscator.com http://www.pbd-obfuscator.com

下载地址:http://chengg0769.download.csdn.net/ 最上面一个,注意因为不能删除,所以其他的标明作废的不要下载。

无csdn账号的请在公共下载站下载(版本可能滞后,因为每月只能更新2次):

http://www.onlinedown.net/soft/15463.htm(我会通过作者平台更新)

http://www.newhua.com/soft/15463.htm(我会通过作者平台更新)

http://xintong.newhua.com:82/soft/15463.htm (我会通过作者平台更新)

其他下载站(版本可能滞后,因为每月只能更新2次):

http://xiazai.zol.com.cn/detail/41/403589.shtml (我会提交update)

http://skycn.com/soft/57984.html (我会通过作者平台更新)

http://mydown.yesky.com/soft/develop/others/446/468946.shtml (我会提交update)

mysite: (仅供发布时提供给下载站用,请勿外链到下面两个地址,提交完后会删除)

http://www.mis2erp.com/soft/pbobfuscator.rar (肯定最新)

http://www.mis2erp.com/soft/PowerbuilderPBDobfuscator.rar (肯定最新)

警告,因本次发行的属于无限制免费版,所以凡称:破解,补丁,系列号等都是不可信任的网站。还有类更可笑的网站有如"无缘无故中奖","诱点不良信息"等都是网站,我也无法保证上百个转载此程序的网站都是善意的。在国外已经发现一个网站挂了三个病毒,通常,一些工具都容易被利用名义来做非法的行为,请谨慎鉴别。

100% clean:

关键字: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语言程序的工具

Powerbuilder 11下载 Powerbuilder 12 Powerbuilder 11.5下载 Powerbuilder 教程

Powerbuilder 9.0下载 Powerbuilder 10下载 Powerbuilder 下载 Powerbuilder 8.0下载

Powerbuilder 9.0 Powerbuilder 11破解 Powerbuilder 12破解 Powerbuilder 12下载

Powerbuilder .net破解

*/---------------------------------------------------

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格式肉眼分析有帮助的地方都尽数抹掉了,从而增加肉眼人工分析的错觉感。我的原则是抹掉一切可抹掉之字节,扰乱一切可扰乱的字节。


目前可以确定在格式解析和基本框架上无错。但是码表依然不完整(截止2010.5.12尚差30个),如果测试到错误(unknown pcode),请告知。但是请注意,请用full编译通过的程序测试,不要用那种编译出错,或者编译到一半异常退出的pbd来测试,它本身就是有问题(这在反编译器开发时遇到过)


还有种错误如link error。实际就是失败了。

建议:

强烈建议只对系列号管制,注册,在线人数限制等关键代码或关键算法等地方进行加密混淆,对于一般的数据录入查询等,没必要进行加密混淆,因为加密混淆数倍,数十倍冗余代码,从而造成执行效率低下。并不是其他混淆器所说的只减慢一点点。我测试我的pb11项目时发现有能感觉得到的延迟。当然是设置的强度非常大的情况下。同时为避免不必要的麻烦,系列号管制等代码,请放在一定数量的代行之后,如100行,不管怎么说,测试版的反编译器都会对可以阅览的代码行有一个限制(因为那个原因...)。这在一定程度也保护了自己的代码。程序的写法上也有一些技巧,并非如平常代码一样编写。


使用:

1.把你的以p-code编译方式的文件放入到一个临时文件夹,如d:\123
为什么要放入一个临时文件夹,而不是直接对文件操作,因为混淆过程可能失败,失败情况下文件会被写入一些数据,pbd在被处理前先会备份成".bac"为扩展名的备份文件(bak跟ue的自动备份冲突),当处理后发现问题,可以第一时间恢复,但是当您选择另外一个文件名后,就无法恢复前一个文件了,你可以打开临时文件夹,自行恢复。
处理过程必须一气呵成,不能分几次进行。


2.按软件界面的"load files"按钮,选择一个exe,dll,pbd格式文件(machine-code编译方式的单一exe文件和pbni方式的除外,提示: dll文件,如果不是单一exe文件,dll还是含有伪代码),随即,文件内的所有对象将在左边的两个CheckListBox中列出(仅仅处理uo,win,func,其他对象类型我认为没必要处理如menu)。其中上面一个CheckListBox中勾选的对象将被加密和混淆下面一个CheckListBox中勾选会将此对象扰乱,主要是欺骗和让反编译软件运行时崩溃。利用的一个普遍真理是:反编译程序很难校验文件的格式有效性。就比如我从一个对象的二进制系列中随机删除一个。你看不出问题,但是你分析立马死掉。道理很简单。虽然你能用uo的二进制对比发现我修改了哪些地方,当然我是随机地。但最终用户使用混淆器处理后,他的原始pbd是不会给你的。你就无法对比了。就好比被修改过的电影剧本,你拿到
新版本你无法知道跟老版本的差异在哪里一样。这是公理,不是歪理。只有一个可以检测得到,那就是反编译器的崩溃,或者是从外部调用它会崩溃。所谓兵不厌诈。
一般建议在10个对象中放置2-3个这样的“从来都不会用到“的废对象作为欺骗对象。一般来说,按照我的经验,必然使得反编译器崩溃。在对象命名上要同其他对象名字无什么差别,就是不要让人一眼看出即可。切忌不可以有什么规律,否则pj者给你屏蔽掉。就如同正常对象一样命名。


3.点"Confuse"按钮,代码被处理。
正常情况下显示如下:
FilePath: D:\pbr测试样本\pb9\ //文件信息
FileName: pxx.pbd
FileLength: 20480bytes
ObjQty: 5
Unicode/Ansi: Ansi

Version: PowerBuilder/vm:9.0/vi:108691/build:8836 //版本信息


-########Write File finished,Object: uf_bitshl.fun //修改后写入“########”为正常标志
Old Len: 1394,New Len: 4552

Close File normally. //关闭文件

如果出现其他提示,就是不正确(提示前有"++++++++"连续加号标志,就是重大错误或失败,如空间不足等提示就表示处理不成功,如下:
Obj:n_cst_dw2excel.udo,Ctrl:n_cst_dw2excel,funcID: 21
-++++++++Can't find enough space to dispose Code-Chip,[failing] //程序切片不能够放在既有的空间里。程序会

//跳过。如果是你的注册函数,

Code = 0x39,step: 4600 of 5481 //那肯定不行.因为寻址空间为0xFFFF,所以

//5481个是会出现问题的。

你必须调整扩展的空间大小(在options标签页,9-30倍可选,但是因为寻址空间oxFFFF,是有限的,如果切片太多就放不下),当然在调整空间前,你可以尝试2-3次,因为程序在寻找一个放代码的空间时会尝试100次,但是有时还是会存在本来有空间,但是却不凑巧的可能。程序采用随机寻找位置而非遍历来找空间。

但是类似这些信息是正常的:-------------Empty expression,Skip.Ctrl:usv_datawindow,funcID: 1
它表示跳过空的代码段,但是现在这些无聊信息我已经屏蔽掉。只显示关键信息了。

为了不给其他人蓄意调试本软件的处理结果,调试也无所谓。我有我的思路应对,options中除了"代码扩展倍数"和"插入冗余的密度"可以选择外,其他选项都不可以改变。代码太少,大约小于20行(100个切分段),也不会被混淆。因为代码太少,如一句。用眼睛就可以反编译。

4.2010.5.12新增移除dll编译方式下的PCODE伪码,虽然用ue手工移除过几个进行测试,发现能运行正常(就是Pcode是多余的,只是产生机器码的临时过渡),但我仍然不保证结果正常,以前听说过pb的机器码编译方式是机器码和伪码参半的,也没去研究。编译机器码时动辄几十分钟,够Lan的。所以作为一个选项给你自己勾选。移除后是否能运行正常,你自己测试。

5.2010.5.12新增伪造一个对象的内部函数,如你写有一个函数,如of_today,你想让他变成一个阻止反编译的地雷,那请在左下方的memo里输入该函数名“of_today”,可以输入多个,每行一个。处理对象时,将核对如果函数名符合,则将func或者event的码进行扰乱。比如用随机数覆盖开头的几个码即可达到目的。当然这个函数肯定应该是废函数。只要名字相同,不管他在哪个对象,哪个控件的哪个地方。当然,你混淆其他的项目时应该及时删除它否则会把其它程序里同函数名的函数搞乱了。你最好约定使用一个名字来命名你的地雷,在你的整个项目里。


想到三打祝家庄的描写,又想到混淆器软件的实现,有点同工。

那老人道:“你便从村里走去,只看有白杨树,便可转弯,不问路道阔狭。但有白杨树的转弯,便是活路。没那树时,都是死路。如有别的树木转弯,也不是活路。若还走差了,左来右去,只走不出去。更兼死路里,地下埋藏着竹签、铁蒺藜。若是走差了,踏着飞签,准定吃捉了。待走那里去?”(《水浒传》第四十七回)

凡是可以归纳出方法的混淆,都可以采用公式编程来反向,所以模糊真与假的界限。做到真假难辨是混淆器应该下功夫的地方。

反编译器在实际运行过程中,它的依赖性也比较强,比如它非常依赖对编译后文件结构的绝对正确,不允许半点误差。所以伪造和刻意的修改都是有针对性的。
反混淆的方法也有很大的弱点,就是依赖固定模式的混淆方式。反之,混淆方式不固定,则难于总结成公式。攻其要害,也是混淆能克制反编译应该着重考虑的地方。

矛有盾可抵御之点,盾有矛可刺穿之处。二者相遇并非形成一个相持平面,必然是一个相互制约,相互渗透,此消彼长的长期过程,事物同理。

未完成工作:
1.PE loader。当然不是一般的loader,因为loader很容易被dump出来。除非有点思路才弄。如混淆后加一个壳应该算不错。
最近有出现一些软件调用molebox来包装EXE和DLL文件的,不过molebox已经是不新鲜的技术了,2006年前的东西,如果用molebox技术来包装pb程序,可以被称作包装器,但无脸称作"PB加密器",因为molebox可以包装任何语言开发的软件,非专为pb;其次,未有证实molebox无法解包。所以休提安全性。如提,置安全性于儿戏。为骗。国外有pbguard为包装器,国内也有若干。如能经时间检验,那的确没问题。如未beta就开卖,为钱是图。

我这个小工具将beta至少3个月。并承诺保留一个免费版,支持20-30种混淆处理方式。至于是否发行商业版,如有需求,可考虑增加多一些专有方式。

2.VM解析的修改+pbd文件格式的修改加密,目前还没足够时间去跟踪调试。技术方面的实现有些难度。
但是我想在不久的一段时间,在我项目空暇时间,必然会走这个思路。说到安全系数问题,可能"定制vm+pbd格式加密",才能称得上牢靠。这个ljtt早说过,但是很遗憾未见其形。因为定制vm和加密pbd文件时都可以设置很多随机因子,致使每家的文件不一样,加之pbd和vm互为配合(狼狈为J),从而从根本上防止反编译。当然并不是看到我这个提示你就去完成一个对文件格式的全部加密的代码嵌入到vm中,那样必然有人去研究如果反。因为太明显了。不过并非易事。

重申安全性:
混淆器理论上是无任何安全保障的,它只能保障反编译器在基于机械反向时对打乱的statement无法做到真实还原,也无法还原文字可读性,还有无法还原已经被模糊化或者做等效替换的部分。除此之外,因为程序的逻辑顺序并未打乱,所以如果靠人工,不管欺骗,陷阱,冗余,都能被去除,如果辅于工具,假以时间,是可以正确还原的!!!这其中主要的症结在于伪码编译不是太低阶,甚至于很容易理解和还原成高级语言。这就是伪码本身的不安全性。这和java,c#,以及早期的vb等类似。当然也得说说伪码的反面,因为偏偏是那种编译成机器码的程序,往往容易被跟踪调试。从而在高手的一个NOP就搞定了。喜欢看汇编的人看汇编时跟我们看程序可能是一样的。就说pb开发工具,每每都是放出来几天,高手就贴出补丁来。就如最近的v12,就被一串空操作简单搞定。所以混淆器并不保障程序安全。只是提高反编译的难度系数。

可以预见的错误:
因为永远不可能掌握跟sybase一样的p-code码表,所以无法保证切分代码时正确无误,但是基本可以保障常用写法时能正确。码表会在足够数量的测试下逐渐命中那些小概率的码。代码的正确切分是混淆的必要保证,否则就一错到底了。所以,在进行混淆后请自行测试程序。万一出错,造成授权或限制不起作用那就不要怪我了。现在我未掌握的未知码,都有标示出来,在混淆时都会提示unknown pcode,所以会很快完善,包括我自己也会大量测试自己的项目,pb sample和网上下载的代码,会很快完善的。

如果遇到错误或者混淆后无法运行,或者运行时报错,请将截图和测试用的pbd文件一起发给我(如果纯粹测试的pbd可以发给我,如果是商业的程序,请不要发给我,但为了能完善混淆器,可以单独将出问题的对象复制到一个新的pbl中并编译成pbd然后发给我,这样我不会太了解你的程序是干嘛使的)

额外提示:
请在发行程序时进行full编译,full编译通过后再进行混淆。

敏感的速度:
理论上,大约会增加执行时间5-10倍。因为不固定,只是个估算。但是只应用到一些关键点的混淆,是可以接受的。随着新想法的出现,如果放置堡垒部分,可能增长到20-100倍也有可能。如果代码比较短,随机地,也可能会选择超高强度,比如扩展到200倍。但是不要担心,就算你自己平时写非常复杂的代码甚至超过pb的最多行限制,它执行起来也足够快的。因为pb程序主要是人机交互,如果是类似inline之类的频繁调用的函数,如bitand运算。或者你本身要绝对快速的计算部分,那可不能用混淆。如强度过分平均的话,不利于构建密集的陷阱阵列和多分叉迷宫。不管设置多少个陷阱,只要一个生效就足够了。


联系方式:
QQ:273939617(请勿随意加,因为已满)
blog:
http://blog.csdn.net/chengg0769
download: http://chengg0769.download.csdn.net/
email: chengang0769#21cn.com

pb11_1-: 6539042 pb11_2-: 20232067 pb11_3-: 23597462 pb11_4-: 52930236 pb11_5-: 42210443 pb11-6-: 16820030
pb11-7-: 3935632 PB11B/S体验:43875405 PB+ORACLE:12592289 PB天下:105603518

陈刚 于中国广东东莞 2010年4月15 凌晨5:12

在此感谢非常多的朋友的关注,例如在csdn的blog后面留言反馈问题的朋友,在download那里反馈问题的朋友,在群里测试的朋友。
恕我不能一一列举名字。有问题请在我的blog上留言反馈,也可以写mail给我。群组里发言也行。

特别感谢:
===========================感===谢=======================================
感谢ourmis的推荐贴

感谢网友创造频道告诉我的不对项目pbd进行混淆的理由。不过我认为理由只能保留。商业POS软件和盗版做斗争的历史说明,不保护自己软件的商业软件公司是不存在的。也是无法存在的。不过我们还就其他问题进行讨论。意义超过此软件。

感谢ourmis.com/pcm的sbo demo,在demo中的sbo_report.pbd中发现是多NOD段时存在bug。已修正;并增加了多FRE段。

感谢网友水上漂将pb8的项目程序用本软件测试并给一个用户测试。并提出做第一个正式用户,当然现在才bata是不会论及钱,但是很感动。有用就好。

感谢Hfong(136824728**#163.com)在4.22寄来样本。在他的ping test中发现一个混淆时的幼稚问题已修正。

感谢Foxstudio在2010.3.27寄给我的pb5开发工具绿色版。我今晚在写pb5的demo测试时,就想到应该在这里写一句感谢。因为我并没有找到第二份pb5.

感谢FYJ对反编译器和混淆器的支持。

============================更新日志=======================================
2010.05.19:

增补与整理pb5,10.5的码表,并测试5,10,10.5的pb-sample通过;
自此,支持5-12全系列。因pb12刚出正式版,前期只测试过beta,待后期着重测试。版本改为v2010.05.3。
NOD一个bug修正.
2010.05.17:

修正在checklistbox中未列出的对象如struct,menu等的"混淆标志"未清零的bug,致使未列出对象的参数被非法修改,致使运行错误。bug由pcm和群内的牛解庖丁(475392*)测试时发现的,可能跟内存有关,如我的电脑测试多次都不出现。有的电脑每次都出现,但是应该归程序责任。
限制用户必须勾选至少一个对象,否则无法得到某些参数的正确的初始化值。版本更新到2010.05.2
2010.05.15:

修正短代码扩展系数太大造成的越界问题
2010.05.12:

修正TRL和FRE造成的问题。并测试自己的两个pb11编译的项目,运行正常。修改版本号为2010.05.1
2010.05.11:

增加移除dll机器码编译时的伪码,一个网友说可以抹掉。但是我无法确定,故为一个选项供用户勾选。但是并未移除,而是先混淆,然后将入口地址拿掉,成无头僵尸,起到相同作用,因为我不想为此改动太多代码造成新问题。
2010.05.07:

修正try...catch结构的转移地址
2010.05.02:

增补pb10.5增加的byte类型的码约十个
2010.05.01:

承ourmis.com/pcm的样本测试,发现10Bx标志处最后一个short不能为0,因为采用随机数扰乱,故测试大约十多次才发现一次,修正。
2010.05.01:

承ourmis.com/pcm提醒,当我用自己的pb9测试时,6x标志可抹掉仍然运行正常,而他寄来的样本(也是9)就是不能抹掉,看提示好像是n_cst_msg,好像是PFC的东东,本想抹掉一切可能抹掉的东西,此处只好不抹。
2010.04.30:

反编译器那边发现全局函数重载(内含一个以上的函数体造成报错)修正。
2010.04.29:

与反编译器一起修正6,7,8与9严重不同:取ctrl-list的不同,从而6-12测试解析正常了。
2010.04.29:

与反编译器一起修正:取控件名时判断控件的编号时 >=8000 写成了 ==8000,导致严重遗漏从而解析出错。修正。
2010.04.28:

对超长代码段实行折中妥协,自动降低JCP复杂度使得空间不够的提示尽量不出现。当无法插入JCP时,使用简单JXP做连接还原代码执行顺序。对超短代码段提升长度为200字节。
2010.04.23:

public的func和event需要用名字呼叫,故不抹掉。
2010.04.21:

修改exe格式丢失结尾的TRL段问题。

附图:

选项:

正在改成中文界面并推出正式版:

分享到:
评论

相关推荐

    Powerbuilder-pbd文字移除與代碼混淆加密器

    在开发过程中,为了保护源代码不被轻易反编译和理解,开发者可能需要用到像"Powerbuilder-pbd文字移除與代碼混淆加密器"这样的工具。 这个工具的主要功能包括: 1. **文字移除**:它会从PBD文件中移除或替换明文字...

    PB编译后程序加密器

    PB混淆器的主要功能是对PowerBuilder编译的程序进行混淆处理,使其难以通过反编译工具理解程序内部的逻辑和结构。混淆技术通常包括重命名变量、函数和类,打乱代码顺序,以及插入无用的指令等,以此增加逆向工程的...

    处理PB编译后的pbd,exe,dll文件。

    标题中的“处理PB编译后的pbd,exe,dll文件”指的是处理PowerBuilder(PB)编译生成的三种类型的文件。在PowerBuilder开发环境中,`.pbd`是工程数据文件,包含了源代码的信息;`.exe`是应用程序可执行文件;`.dll`则...

    拟阵约束下最大化子模函数的模型及其算法的一种熵聚类方法.pdf

    拟阵约束下最大化子模函数的模型及其算法的一种熵聚类方法.pdf

    电力市场领域中基于CVaR风险评估的省间交易商最优购电模型研究与实现

    内容概要:本文探讨了在两级电力市场环境中,针对省间交易商的最优购电模型的研究。文中提出了一个双层非线性优化模型,用于处理省内电力市场和省间电力交易的出清问题。该模型采用CVaR(条件风险价值)方法来评估和管理由新能源和负荷不确定性带来的风险。通过KKT条件和对偶理论,将复杂的双层非线性问题转化为更易求解的线性单层问题。此外,还通过实际案例验证了模型的有效性,展示了不同风险偏好设置对购电策略的影响。 适合人群:从事电力系统规划、运营以及风险管理的专业人士,尤其是对电力市场机制感兴趣的学者和技术专家。 使用场景及目标:适用于希望深入了解电力市场运作机制及其风险控制手段的研究人员和技术开发者。主要目标是为省间交易商提供一种科学有效的购电策略,以降低风险并提高经济效益。 其他说明:文章不仅介绍了理论模型的构建过程,还包括具体的数学公式推导和Python代码示例,便于读者理解和实践。同时强调了模型在实际应用中存在的挑战,如数据精度等问题,并指出了未来改进的方向。

    MATLAB/Simulink平台下四机两区系统风储联合调频技术及其高效仿真实现

    内容概要:本文探讨了在MATLAB/Simulink平台上针对四机两区系统的风储联合调频技术。首先介绍了四机两区系统作为经典的电力系统模型,在风电渗透率增加的情况下,传统一次调频方式面临挑战。接着阐述了风储联合调频技术的应用,通过引入虚拟惯性控制和下垂控制策略,提高了系统的频率稳定性。文章展示了具体的MATLAB/Simulink仿真模型,包括系统参数设置、控制算法实现以及仿真加速方法。最终结果显示,在风电渗透率为25%的情况下,通过风储联合调频,系统频率特性得到显著提升,仿真时间缩短至5秒以内。 适合人群:从事电力系统研究、仿真建模的技术人员,特别是关注风电接入电网稳定性的研究人员。 使用场景及目标:适用于希望深入了解风储联合调频机制及其仿真实现的研究人员和技术开发者。目标是掌握如何利用MATLAB/Simulink进行高效的电力系统仿真,尤其是针对含有高比例风电接入的复杂场景。 其他说明:文中提供的具体参数配置和控制算法有助于读者快速搭建类似的仿真环境,并进行相关研究。同时强调了参考文献对于理论基础建立的重要性。

    永磁同步电机无感控制:高频方波注入与滑膜观测器结合实现及其应用场景

    内容概要:本文介绍了永磁同步电机(PMSM)无感控制技术,特别是高频方波注入与滑膜观测器相结合的方法。首先解释了高频方波注入法的工作原理,即通过向电机注入高频方波电压信号,利用电机的凸极效应获取转子位置信息。接着讨论了滑膜观测器的作用,它能够根据电机的电压和电流估计转速和位置,具有较强的鲁棒性。两者结合可以提高无传感器控制系统的稳定性和精度。文中还提供了具体的Python、C语言和Matlab代码示例,展示了如何实现这两种技术。此外,简要提及了正弦波注入的相关论文资料,强调了其在不同工况下的优势。 适合人群:从事电机控制系统设计的研发工程师和技术爱好者,尤其是对永磁同步电机无感控制感兴趣的读者。 使用场景及目标:适用于需要减少传感器依赖、降低成本并提高系统可靠性的情况,如工业自动化设备、电动汽车等领域的电机控制。目标是掌握高频方波注入与滑膜观测器结合的具体实现方法,应用于实际工程项目中。 其他说明:文中提到的高频方波注入和滑膜观测器的结合方式,不仅提高了系统的性能,还在某些特殊情况下表现出更好的适应性。同时,附带提供的代码片段有助于读者更好地理解和实践这一技术。

    MATLAB中扩展卡尔曼滤波与双扩展卡尔曼滤波在电池参数辨识的应用

    内容概要:本文深入探讨了MATLAB中扩展卡尔曼滤波(EKF)和双扩展卡尔曼滤波(DEKF)在电池参数辨识中的应用。首先介绍了EKF的基本原理和代码实现,包括状态预测和更新步骤。接着讨论了DEKF的工作机制,即同时估计系统状态和参数,解决了参数和状态耦合估计的问题。文章还详细描述了电池参数辨识的具体应用场景,特别是针对电池管理系统中的荷电状态(SOC)估计。此外,提到了一些实用技巧,如雅可比矩阵的计算、参数初始值的选择、数据预处理方法等,并引用了几篇重要文献作为参考。 适合人群:从事电池管理系统开发的研究人员和技术人员,尤其是对状态估计和参数辨识感兴趣的读者。 使用场景及目标:适用于需要精确估计电池参数的实际项目,如电动汽车、储能系统等领域。目标是提高电池管理系统的性能,确保电池的安全性和可靠性。 其他说明:文章强调了实际应用中的注意事项,如数据处理、参数选择和模型优化等方面的经验分享。同时提醒读者关注最新的研究成果和技术进展,以便更好地应用于实际工作中。

    基于三菱FX3U PLC和威纶通触摸屏的分切机上下收放卷张力控制系统设计

    内容概要:本文详细介绍了在无电子凸轮功能情况下,利用三菱FX3U系列PLC和威纶通触摸屏实现分切机上下收放卷张力控制的方法。主要内容涵盖硬件连接、程序框架设计、张力检测与读取、PID控制逻辑以及触摸屏交互界面的设计。文中通过具体代码示例展示了如何初始化寄存器、读取张力传感器数据、计算张力偏差并实施PID控制,最终实现稳定的张力控制。此外,还讨论了卷径计算、速度同步控制等关键技术点,并提供了现场调试经验和优化建议。 适合人群:从事自动化生产设备维护和技术支持的专业人士,尤其是熟悉PLC编程和触摸屏应用的技术人员。 使用场景及目标:适用于需要对分切机进行升级改造的企业,旨在提高分切机的张力控制精度,确保材料切割质量,降低生产成本。通过本方案可以实现±3%的张力控制精度,满足基本生产需求。 其他说明:本文不仅提供详细的程序代码和硬件配置指南,还分享了许多实用的调试技巧和经验,帮助技术人员更好地理解和应用相关技术。

    基于S7系列PLC与组态王的三泵变频恒压供水系统设计与实现

    内容概要:本文详细介绍了一种基于西门子S7-200和S7-300 PLC以及组态王软件的三泵变频恒压供水系统。主要内容涵盖IO分配、接线图原理图、梯形图程序编写和组态画面设计四个方面。通过合理的硬件配置和精确的编程逻辑,确保系统能够在不同负载情况下保持稳定的供水压力,同时实现节能和延长设备使用寿命的目标。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是熟悉PLC编程和组态软件使用的专业人士。 使用场景及目标:适用于需要稳定供水的各种场合,如住宅小区、工厂等。目标是通过优化控制系统,提升供水效率,减少能源消耗,并确保系统的可靠性和安全性。 其他说明:文中提供了详细的实例代码和调试技巧,帮助读者更好地理解和实施该项目。此外,还分享了一些实用的经验教训,有助于避免常见的错误和陷阱。

    三相三线制SVG/STATCOM的Simulink仿真建模与控制策略解析

    内容概要:本文详细介绍了三相三线制静止无功发生器(SVG/STATCOM)在Simulink中的仿真模型设计与实现。主要内容涵盖ip-iq检测法用于无功功率检测、dq坐标系下的电流解耦控制、电压电流双闭环控制系统的设计、SVPWM调制技术的应用以及具体的仿真参数设置。文中不仅提供了理论背景,还展示了具体的Matlab代码片段,帮助读者理解各个控制环节的工作原理和技术细节。此外,文章还讨论了实际调试中遇到的问题及解决方案,强调了参数调整的重要性。 适合人群:从事电力系统自动化、电力电子技术研究的专业人士,特别是对SVG/STATCOM仿真感兴趣的工程师和研究人员。 使用场景及目标:适用于希望深入了解SVG/STATCOM工作原理并掌握其仿真方法的研究人员和工程师。目标是在实践中能够正确搭建和优化SVG/STATCOM的仿真模型,提高无功补偿的效果。 其他说明:文章提供了丰富的实例代码和调试技巧,有助于读者更好地理解和应用所学知识。同时,文中提及的一些经验和注意事项来源于实际项目,具有较高的参考价值。

    基于SIMULINK的风力机发电效率建模探究.pdf

    基于SIMULINK的风力机发电效率建模探究.pdf

    CarSim与Simulink联合仿真:基于MPC模型预测控制实现智能超车换道

    内容概要:本文介绍了如何将CarSim的动力学模型与Simulink的智能算法相结合,利用模型预测控制(MPC)实现车辆的智能超车换道。主要内容包括MPC控制器的设计、路径规划算法、联合仿真的配置要点以及实际应用效果。文中提供了详细的代码片段和技术细节,如权重矩阵设置、路径跟踪目标函数、安全超车条件判断等。此外,还强调了仿真过程中需要注意的关键参数配置,如仿真步长、插值设置等,以确保系统的稳定性和准确性。 适合人群:从事自动驾驶研究的技术人员、汽车工程领域的研究人员、对联合仿真感兴趣的开发者。 使用场景及目标:适用于需要进行自动驾驶车辆行为模拟的研究机构和企业,旨在提高超车换道的安全性和效率,为自动驾驶技术研发提供理论支持和技术验证。 其他说明:随包提供的案例文件已调好所有参数,可以直接导入并运行,帮助用户快速上手。文中提到的具体参数和配置方法对于初学者非常友好,能够显著降低入门门槛。

    基于MATLAB的信号与系统实验:常见信号生成、卷积积分、频域分析及Z变换详解

    内容概要:本文详细介绍了利用MATLAB进行信号与系统实验的具体步骤和技术要点。首先讲解了常见信号(如方波、sinc函数、正弦波等)的生成方法及其注意事项,强调了时间轴设置和参数调整的重要性。接着探讨了卷积积分的两种实现方式——符号运算和数值积分,指出了各自的特点和应用场景,并特别提醒了数值卷积时的时间轴重构和步长修正问题。随后深入浅出地解释了频域分析的方法,包括傅里叶变换的符号计算和快速傅里叶变换(FFT),并给出了具体的代码实例和常见错误提示。最后阐述了离散时间信号与系统的Z变换分析,展示了如何通过Z变换将差分方程转化为传递函数以及如何绘制零极点图来评估系统的稳定性。 适合人群:正在学习信号与系统课程的学生,尤其是需要完成相关实验任务的人群;对MATLAB有一定基础,希望通过实践加深对该领域理解的学习者。 使用场景及目标:帮助学生掌握MATLAB环境下信号生成、卷积积分、频域分析和Z变换的基本技能;提高学生解决实际问题的能力,避免常见的编程陷阱;培养学生的动手能力和科学思维习惯。 其他说明:文中不仅提供了详细的代码示例,还分享了许多实用的小技巧,如如何正确保存实验结果图、如何撰写高质量的实验报告等。同时,作者以幽默风趣的语言风格贯穿全文,使得原本枯燥的技术内容变得生动有趣。

    【KUKA 机器人移动编程】:mo2_motion_ptp_en.ppt

    KUKA机器人相关文档

    永磁同步电机(PMSM)无传感器控制:I/F启动与滑模观测器结合的技术实现及应用

    内容概要:本文详细介绍了无传感器永磁同步电机(PMSM)控制技术,特别是针对低速和中高速的不同控制策略。低速阶段采用I/F控制,通过固定电流幅值和斜坡加速的方式启动电机,确保平稳启动。中高速阶段则引入滑模观测器进行反电动势估算,从而精确控制电机转速。文中还讨论了两者之间的平滑切换逻辑,强调了参数选择和调试技巧的重要性。此外,提供了具体的伪代码示例,帮助读者更好地理解和实现这一控制方案。 适合人群:从事电机控制系统设计的研发工程师和技术爱好者。 使用场景及目标:适用于需要降低成本并提高可靠性的应用场景,如家用电器、工业自动化设备等。主要目标是掌握无传感器PMSM控制的基本原理及其优化方法。 其他说明:文中提到的实际案例和测试数据有助于加深理解,同时提醒开发者注意硬件参数准确性以及调试过程中可能出现的问题。

    智能家居与物联网培训材料.ppt

    智能家居与物联网培训材料.ppt

    Matlab实现车辆路径规划:基于TSP、CVRP、CDVRP、VRPTW的四大算法解析及应用

    内容概要:本文详细介绍了使用Matlab解决车辆路径规划问题的四种经典算法:TSP(旅行商问题)、CVRP(带容量约束的车辆路径问题)、CDVRP(带容量和距离双重约束的车辆路径问题)和VRPTW(带时间窗约束的车辆路径问题)。针对每个问题,文中提供了具体的算法实现思路和关键代码片段,如遗传算法用于TSP的基础求解,贪心算法和遗传算法结合用于CVRP的路径分割,以及带有惩罚函数的时间窗约束处理方法。此外,还讨论了性能优化技巧,如矩阵运算替代循环、锦标赛选择、2-opt局部优化等。 适合人群:具有一定编程基础,尤其是对物流调度、路径规划感兴趣的开发者和技术爱好者。 使用场景及目标:适用于物流配送系统的路径优化,旨在提高配送效率,降低成本。具体应用场景包括但不限于外卖配送、快递运输等。目标是帮助读者掌握如何利用Matlab实现高效的路径规划算法,解决实际业务中的复杂约束条件。 其他说明:文中不仅提供了详细的代码实现,还分享了许多实践经验,如参数设置、数据预处理、异常检测等。建议读者在实践中不断尝试不同的算法组合和优化策略,以应对更加复杂的实际问题。

    软考网络工程师2010-2014真题及答案

    软考网络工程师2010-2014真题及答案完整版 全国计算机软考 适合软考中级人群

    基于单片机的酒驾检测设计(51+1602+PCF8591+LED+BZ+KEY3)#0055

    包括:源程序工程文件、Proteus仿真工程文件、论文材料、配套技术手册等 1、采用51/52单片机作为主控芯片; 2、采用1602液晶显示:测量酒精值、酒驾阈值、醉驾阈值; 3、采用PCF8591进行AD模数转换; 4、LED指示:正常绿灯、酒驾黄灯、醉驾红灯; 5、可通过按键修改酒驾醉驾阈值;

Global site tag (gtag.js) - Google Analytics