`
gchina
  • 浏览: 8948 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PowerBuilder DeCompiler(PB DeCompiler) Demo download(PB反编译,支持5-12)

阅读更多
PowerBuilder反编译器,支持5-12,pkb2.5。用于源码丢失后的工程恢复。

关键字:Powerbuilder反编译,PB反编译,PBD还原,PBD反编译
powerbuilder Reverse Engineering,decompile powerbuilder

目前demo支持显示5-12的代码,有部分限制见说明部分,仅供测试。最新版v2011.11.01 Build 2011.11.02

正式版购买价格:http://www.mis2erp.com

各QQ-PB群均有上传到群共享,群内网友直接在群共享内下载即可。

有问题请返回给我。
以下是图片和简单说明书一份:
PowerBuilder反编译器 DEMO V2011.10.01 说明书
PowerBuilder DeCompiler DEMO V2011.10.01 Manual
*Chinese to English translation by google
最后编辑时间: 2011-10-08
Last modified :  2011-10-08




 
以下域名与网站均为推广本软件所设立:
The following domain names and websites were set up to promote this software:
http://cnhost.mis2erp.com 中国主机 host china
http://www.mis2erp.com  美国主机 U.S. Host

一.软件用途与特性(Functions and features):
     在我们编程的工作中,有两种情况要利用到本工具:
     Work in our programming. Using this tool, there are two cases:
1. 旧项目中的全部或者部分对象需要直接用于新版本软件中
         One or some Objects, to be used in the new version of software, to extract from the old project. but they are the PBDs, no PBLs

比如国外用户还在使用PB5,而在国内,6.5,7,8上的项目也非常多,
         For example, in many countries, PB5 is still used widely. A lot of projects, the use of version: 6.5,7,8 programming.
有些是设备厂家提供的接口还是比较旧的版本,
     Some of the hardware device interface, older and can not use the new version. The manufacturer does not provide technical support for
the new version.


诸多原因,造成用多个版本开发软件成为现实。而且都是跳跃着升级。
Many reasons, in fact, now with multiple versions of software are developed, and jump to upgrade.
而目前比较流行的开发版本是稳定的几个版本如6.5,9,10.5,11.5,12。
At present, several versions of the popular is: 6.5,9,10.5,11.5,12. They are stable.
某些过渡版本也有大量开发,那就涉及到一个升级过程。
Some interim version, was used extensively to develop products, the upgrade process is necessary.
由于许多组件要来自旧版本,可能对项目移植,就需要本软件。
Since many components come from the old version, you may transplant the project, you need this software.
很难想象10年前的源码现在还完整地保留着,而且详细到每个细小的升级。
Can not believe that these source 10 years ago, is still intact with each small upgrade.

2. 源码遗失,或者没有在某个历史版本的备份
       Source is lost, or not backed up, in a version of history

如电脑磁盘损坏,光碟失效,硬件遗失,源码遗失等情况,也是从pbd直接还原的最主要原因。
If a damaged disk, CD-ROM failure, hardware is lost,, the source is lost, and so on, these are the main reason for reduction pbd.
没有什么比灾难恢复更具有意义,这也是本软件的主要定位和价值所在。
Nothing is more meaningful than the recovery from the disaster, which is the main location and the value of the software

3. 支持版本5;6.5;7;8;9;10;10.5;11;11.5;12;PKB2.5共计11个版本。版本指PBVMxxx.dll的版本。其中xxx就是版本。
Support for version 5; 6.5; 7; 8; 9; 10; 10.5; 11; 11.5; 12; PKB2.5. Total of 11 versions. Means PBVMxxx.dll version. xxx is the version here.

本软件自2009年7月开始研发,期间经过艰苦的努力,逐渐分析pbd格式和逐步改进,从而使得反编译非常完善,必将对你工作给予很大帮助。
Began the development of the software, since July 2009, Analysis pbd format gradually, and improve it gradually, the results decompilation,
very well. It Will give a great help, for your work.



主要有以下特色:
Following features:
1.  广泛支持现有主流开发版本从PB5-12,PKB2.5和2.0(待调试通过),从而使得我们不必到处寻找软件,而且有的软件能这样却不能那样,总之无法实用。
         Broad support for the Major release version, PB5 to 12, and PKB2.5.
2. 反编译速度非常快,打开文件到反编译完,都是分分钟的事情,就让你迈过这个痛苦的恢复过程,把主要精力花在手工除错上面,以便更快更容易恢复工程。
     Decompiler is very fast, open the file to the completion of de-compile, only a few minutes.
3. 采用BCB开发,功能完善,能适合反编译时的反复打开文件和调试,如重复分析,单文件,单对象,单事件分析等。对于工作的方便性,有充分地考虑。
     Using the development tools: BCB. It has perfect function. Competence: Open the file and debug again, the analysis of repeated, single-document
    analysis, single-object analysis, single-event analysis
4. 支持标准sr格式的导出和PBL直接导出,满足少数对象的还原和整个工程的还原需求。
     Support: export sr standard format, and PBL direct export, to meet the demand: the reduction of a small number of objects and restore the whole
     project.
5. 支持非常丰富的查找功能,便于快速分析和定位。
Support: Search feature is very convenient. Analysis of fast, accurate positioning
6. 程序在richedit基础上完全实现关键字亮显,效果等同IDE中的亮显,检视起来非常熟悉。
    On the basis of the richedit. Highlight keywords to achieve the results highlighted in the same IDE. Check the code, very familiar with the IDE
7. 完美绑定内嵌SQL语句和变量,无需手工恢复。
Perfect Restore: bind variable to an embedded SQL statement, the code is complete, do not need to manually restore.
8. 反编译过程有详细错误日志紧随记录,从而容易了解反编译过程中的错误。便于手工修正。
Decompilation process, a detailed error log records. Understand the error in the process of decompilation easily. Easy to correct the error manually.
9. 未知的PCODE会及时提示,以供作者及时完善补充。
Unknown PCODE, will be prompt timely. Prompted the author, revised code table, add code table.


10. 有断言匹配,当一个已经标示的PCODE出现异常时,它表明先期的PCODE掌握情况有误,可以及时提示,以利修正。
Assertion matching and error: When an already marked PCODE abnormal, it indicates that an error early in the PCODE. By this hint, the author can
     fix quickly.
11. 本软件在国外和国外网站会同时发布,测试版已经发布在国内主要大的下载站点和csdn网站,国外发布在softpedia.com和brothersoft.com等网
     站。并新申请多个域名和美国主机,便于国外用户浏览和下载。
The software also posted on the foreign website, demo has been released in China, the major download sites and csdn, foreign published in
     softpedia.com and brothersoft.com site. And apply for multiple domain names, the U.S. host, to facilitate foreign users to browse and download.   
12. 恢复项目需要的工程量很少。
  Project recovery, requires very little cost.
13.Dw专门有工具批量恢复出源码。直接导入。
  Dw source, there are tools to restore them, in batches. Source imported into the PBL directly.
14.菜单支持中英文自动适应。少数提示信息因为与PB和程序员息息相关,将采用英文提示而不中文化,因为中文化也无更好的词语。对于错误
      提示信息也主要是提供给作者修正。
      Chinese and English menu display automatically, depending on the operating system. Error message is displayed in English.

二.菜单功能简介:
    Menu Introduction:

文件:
File:

从EXE中加载列表     将从exe中的PBD-LIST列表逐个加载PBD文件,请选择主文件。
这样方式将能自动区分那种公用pbd的情况。“打开文件”菜单容易将多个项目同时加载进来。而这种方式只会每
次加载一个项目的exe和PBD进来。
Read Files from EXE      PBD file will be loaded from the PBD-LIST list in exe, one by one, select the main EXE file
          In this way, able to distinguish all of the pbds in the project, including public pbd, automatically
"Load new File"menu, you may add pbds belong to multiple projects. In this way, will recognize its own pbd files.
  
打开文件                       请选择PB或者PKB文件打开,默认文件类型为PBD,可自己下拉选择,如pbd,dll,exe等。
Load new file                    Please select the PB, or PKB file, the default file type is PBD, drop-down options types, such as pbd, dll, exe, etc.

移除当前文件      TreeView中选择的文件将被移除
Remove Current file      File will be removed, selected in the TreeView

移除全部文件 TreeView中所有打开的文件将被移除
Remove All files Files will be removed, all files opened in TreeView

创建pbw和pbt文件             对于有workspace和target的版本,将创建pbw和pbt文件。直接用PB-IDE打开。
Create pbw and pbt              For workspace and target version, will create pbw and pbt files.then Open pbl, with the PB-IDE directly.

重新分析最后文件               对最后打开的文件重新分析一次,用于调试目的。
Parse Last file again Re-analysis, the last opened file, for debugging

重新分析当前文件   对TreeView中选择的文件重新分析一次,用于调试目的。
Parse selected file again       Re-analysis, the selected file in TreeView, for debugging

保存当前脚本       当你在右边的richedit中查看或者修改源码后,这个修改并不会保存到系统中,所以请点此菜单单独保存,可
                                          以选择txt或doc格式。建议没有项目经验的人不要在此改动,应该导出sr后修改,或者在IDE中去修改。比
                                         如:你只需要一个对象的源码,先导出sr,然后导入到IDE中,有错误再根据提示修改,这样更准确,因为本
                                         系统随时可以在此加载文件并分析,保存你的修改毫无意义。另外主要是IDE能根据语法判断错误,修改更专
                                         业。
Save current script               Save the script in the richedit, txt or doc.
                                         Can modify the code in the richedit, but does not update changes to the system. Please keep separate. More
                                         changes should be in the pb-ide. Because the IDE can suggest specific information.


当前对象导出sr*
当前文件导出sr*
全部文件导出sr*               导出PB-IDE支持的sr格式,便于导入新的项目中,使用且仅仅用在只需要恢复少数几个对象时使用。更容易
                                        除错并完成工作。JPG,BMP等都是在此功能中导出。
Export to sr* current object
Export to sr* current file
Export to sr* all files             Export sr * format, for PB-IDE import. When only a few objects need to restore. Easy to debug and complete the
                                         reverse. And,JPG,BMP export is here.

全部文件导出sr*.txt(便于搜索)   将文件存为带txt后缀的文件,便于在操作系统的资源管理器里搜索关键字。
Export to .sr*.txt all files          Saved as a file with “txt” extension,to search for the keyword in the resource manager(window OS)。

当前文件导出为PBL
全部文件导出为PBL            将反编译的结果保存为PBL库文件,直接载入工程中。第二和第三个菜单主要是考虑许多对象容纳在一个PBL
                                        中时,载入IDE会崩溃掉,而有时会采取特殊的步骤来逐个导入。第二个菜单是按一个NOD的一个ENT段来自
                                        动切分,保证稳定导入工程。加载到IDE这个过程,如果项目简单,pbd比较少,可以很轻松,如果对象多达上
                                        千个,不是个容易的过程,先处理简单的,容易的,无错的,再逐渐攻克个别有问题的,甚至于采用sr导入来
                                        完成在IDE中的加载。必要时甚至在IDE中直接建立一个新对象,再逐步粘贴源码。遇到问题,我们要知道如
                                        何化解最终达成。

Export to PBL Current file
Export to PBL All files            Results decompile, save for the PBL library files, loading PBL to the project directly.

对象载入和分析顺序            当“从EXE中加载列表“加载文件时,给出对象的载入顺序。软件会考虑继承关系和引用的先后顺序。
Inherit order by lib list            When you click " Read Files from EXE" menu to loaded file. Given the order to load the object. Software will
                                        calculate the order of inheritance and reference.

显示SR*文件导入顺序表       由于对象之间依存关系复杂,甚至相互调用和引用的,所以此菜单给出一个导入顺序的排序,以利使用sr导入
                                        过程能顺序进行。
Import order sr* files            Give an order, import sr file.

转化EXE和DLL为PBD        将exe和dll中pbd部分移出来成单独的文件,便于附加到项目中引用内部的对象编写程序。
Extract EXE,DLL to PBD       Extract pbd. From exe and dll

打开历史文件                   每次打开后都将在ini文件中记录下最后打开的15个文件,便于快速开启,或者多次重复打开文件
Recent                         History file. Click to open quickly

退出程序                       退出程序。
Exit program                    Exit program

其他菜单不详述
Other menu does not describe

三.DEMO限制说明(Demo limit)
出于保护他人软件的考虑,本软件并不会完全开放或者免费提供。能从互联网上得到的该软件程序,一定是经过条件编译有所限制的,是不可能通
过破解来达到增加功能的目的。条件编译时,屏蔽了all in one代码,sr导出代码,pbl导出代码。
To protect the software, the software will not be open, be free。
demo version, discarded: all in one code, sr export code, pbl export code。

Demo中有如下限制,使得本软件仅仅用于测试和评估,而不会对他人的权益造成危害。
Demo has the following limitations

A。标记代码(Marked Code):
请在对象的Instance var区增加如下两个变量:
Two additional variables are as follows, in the “Instance Var” region:
string is_demo = "aaaaaaaa.....aaaaaaaa"               //共200个字母a,小写;200 letters with “a”, lower case
long il_demo = 123456789

请同时在对象的Shared Var区增加两个变量:
Two additional variables are as follows, in the “Shared Var” region:
string ss_demo = "aaaaaaaa.....aaaaaaaa"               //共200个字母a,小写;200 letters with “a”, lower case
long sl_demo = 123456789

增加这四个变量申明后,将你自己的测试代码编译成pbd;
After adding the four variable declaration, compiled test code to pbd, your own.
但仍受到如下Demo限制,不要期望我发布一个"完全"版本给大家测试,这是永远不可能的。望见谅:
Limit:
1。只能查看包括对象在内的9个控件(根容器算一个控件,如w_main算第一个控件,他上面放一个按钮算第二个控件),
        每个控件下的事件和函数也只能看到不超过9个;
   Most View: 9 controls and 9 events or internal functions.
2。SQL语句在一段代码中不得超过3个(包括select into,select blob,update blob,dynamic sql,cursor等);
   Less than 3, embedded sql.
3。条件判断和跳转语句,如if  end if,do while for next等逻辑判断和跳转结构体,总数量不超过12个;
            Less than 12, logic, and jump statements.
B。非标记代码(Non-marking code):
1。只能查看包括对象在内的4个控件(根容器算一个控件,如w_main算第一个控件,他上面放一个按钮算第二个控件),
        每个控件下的事件和函数也只能看到不超过9个;
   Most View: 4 controls and 9 events or internal functions.


2。SQL语句在一段代码中不得超过3个(包括select into,select blob,update blob,dynamic sql,cursor等);
   Less than 3, embedded sql.
3。条件判断和跳转语句,如if  end if,do while for next等逻辑判断和跳转结构体,总数量不超过12个;
            Less than 12, logic, and jump statements.
4。connect所在代码段无法看到;(保护数据库连接参数)
   Can not see the code, if there is a string: “connect”
5。disconnect所在代码段无法看到;(保护数据库连接参数)
            Can not see the code, if there is a string: “disconnect”
6。halt and halt close所在代码段无法看到;(保护数据库连接参数)
   Can not see the code, if there is a string: “halt” or “halt close”.
7。行数大于40行的代码段无法看到。
            Can not see. More than 40 lines, lines of code

被限制的代码段有提示(Prompted): /*Expression is Empty or Demo Limit*/

另两种代码为空白的情况,是本身就是为空,不是反编译器无法解析:
The following: empty code, it is not a defect.
1. 如果你自定义某个事件或者函数,然后删除它的全部代码,其函数名仍然保存着,反编译出来代码为空,也不会显示上面
的提示,请注意区别,并不是程序原因造成,是因为代码本身就是空的。请核对你自己的源代码以了解这种情况。
  Define an event or function, and then delete all of its code, the function names are still preserved, Decompiled code is empty

2. 这样的空代码也是经常存在的(无控件的可视对象或窗体):
           No control in the visual object or form. Is the empty code.  
on uo_yy.create                      on uo_yy.destroy
          //empty                             //empty
end on                              end on        

四.在线验证:
Certification Online

在线验证用时约30-50秒,验证后显示结果如下:
机器码: 允许    文件CRC: 允许    授权期限: 2018-12-31 允许    授权版本: 50/60    IP: 159.136.11*
通过在线验证,您将使用正式版......

Online authentication, with about 30-50 seconds, after verification shows the following results:
MachineID: Allow    FileCRC: Allow    AuthorizedDate: 2018-12-31 Allow    versions: 50/60    IP: 159.136.11*
Pass authentication......

五.使用说明(Operating Instructions)    
1.   需要恢复DataWindow请用RecoveryDW文件夹内的程序来恢复,它利用的是pb自己的函数来还原,它是pb开源代码。如果我给出的源码同
你的版本不一致,请从最近的版本移植一份并用你自己的PB进行编译,再执行DWs的恢复。
          DataWindow syntax recovery, run program in RecoveryDW folder. It is open source code with pb.
          If the source I have given, inconsistent with your version, a transplant from a similar version, and compile with your PB, and then perform the recovery of DWs

2. 本软件也可以直接打开PBL文件,读取里面的编译码和源码。当你没有安装所有的PB版本时,这个功能能帮你方便查看。
          The software can also open PBL files directly, read the p-code and source code.

3. 在右边的RichEdit中按住鼠标左键,滚动滑轮,可以放大文字,但仅限当前代码。
          In the RichEdit. Hold down the left mouse button, scroll wheel, you can enlarge the text, but only the current code.
 
4.  对于继承自父级的对象,需要先打开父级对象,如一个pbd中包含w_center,w_main;w_main继承自w_center,只打开一次pbd是无法得到它的
      所有属性的,因为他的属性首先得继承父对象的属性的public和protect。请选择打开该pbd,然后再次选择打开。第二次时将向前追溯第一个
      pbd中得到的w_center的属性作为w_main的继承属性。(因在一个pbd中,排列顺序决定了不一定先分析到w_center)。
      菜单:从EXE中加载列表 能自动计算加载对象的先后顺序。其他菜单需要你自己确定加载pbd的顺序。
      For inherited object, you need to open the parent object before the object.
  Menu “Read Files from EXE”,Calculates the order automatically, for object loading,。
  Other menus, you need to know the sequence, for pbd loading.

5.    如果PowerShield混淆过的代码,会在文件列表处显示Encrypt字样,在代码段也会提示://expression is Encryption!
也可能无法解析而什么都无法显示。
Code was confused before, will show Encrypt word in the file list
          May be, can not be resolved, can not be displayed.
      6.   其他操作请见视频演示,在DEMO版的打包中,有个Video目录,里面有三个swf格式的屏幕演示。有详细演示整个恢复并加载到IDE的
  过程。
  视频在线播放:http://cnhost.mis2erp.com/soft/pbdecompiler.swf
    http://cnhost.mis2erp.com/soft/pbdecompilerstandard.swf
                 http://cnhost.mis2erp.com/soft/pbdecompilerPB9.swf
         
  See the video, other operations
  In the archive, DEMO version, there is a Video folder, there are three video files, swf formats。
           Play Online:   http://www.mis2erp.com/soft/pbdecompiler.swf
                 http://www.mis2erp.com/soft/pbdecompilerstandard.swf
                          http://www.mis2erp.com/soft/pbdecompilerPB9.swf

六.开发与修改日志
2011.10.08    从根本上重写对象继承以及外部引用等分析方法,彻底分析继承树并自上而下继承属性和函数
                  优化分析代码,极大地提高了反编译速度。
                  修正其他bug数十个。版本更新为v2011.10.01
2011.09.08 修正系统类库解析方法,解决get_xxx和set_xxx到属性的映射
                       某些处理改用多线程。
2011.04.23    修正try结构还原结果,完美再现try结构体
2011.04.20    修正一个try的码
2011-03-05    修正catch括号中的变量申明问题
2010.01.18    修正choose的case条件的复杂组合方式
2010.11.07    正式版在线认证功能,完善其他功能。
2010.10.15 增加将单个对象导出为一个PBL的功能,用于那种一直出错无法附加的pbl。分而治之。
作说明书配图详细介绍使用过程。
2010.10.11 完成find功能,修正4个PCODE码
2010.10.11 call::super错写成晚饭; 修正SQL中出现汉字时参数位置对应错误的bug;
dw_1.object.id[{1}],修正为dw_1.object.id[1]
2010.10.11 利用sqlda来为cursor准备sql时,cursor的指向SQL语句的指针为0,除bug。
2010.10.11 global function语法中没有forward,bug;
forward prototypes
global function f_xxx(parmlist)
end prototypes
2010.10.02中global为public,bug

2010.10.10 直接导出PBL功能,能在IDE中直接打开,但是事件和函数有顺序上的错乱.暂无法修正
2010.10.01 修正了字符串续行(&)时排版不整齐问题,现已能对齐左值位置,并向右缩进2个tab。如:
ls_1 = "aaa" &
+ "bbb" &
+ "ccc"
2010.10.01 修正了行缩进和排版
2010.10.01 修正了for...next识别不准的一个bug,减少了一个goto语句
2010.10.01 发布测试版开放所有版本测试

2010.09.29 校验pb5的PBM_EVENTID,修正pb5中select into 和cursor取sql字串时地址的偏差
2010.09 发布测试版开放9和11
2010.09 完成All in One的源码导出,准备发行demo,all in one时,发现:
type oleobject_1 from oleobject within w_2 descriptor "pb_nvo" = "true"
pbkiller没有对nvo的descriptor "pb_nvo" = "true"进行说明,测试发现如果导入后IDE会认不到nvo,nvo组件会丢失。
2010.04-09 发布混淆器DEMO和混淆器正式版,在半年期间,反编译与混淆器一起修除bug,完善
2010.03 研究Powershield混淆器原理,写出反混淆程序并验证其可靠性不足
2009.08-2010.03 开发完成反编译器90%工作量
2009.07 研究pbd文件格式

七.下载位置以及博客
下载位置: http://cnhost.mis2erp.com/soft/PBDeCompiler.rar (host china)
Download fm: http://www.mis2erp.com/soft/PBDeCompiler.rar (U.S. host)

blog: http://blog.csdn.net/chengg0769 (chinese only)
文字介绍(Introduction): http://blog.csdn.net/chengg0769/archive/2010/09/29/5913276.aspx (chinese only)

八.建议和意见提交
有任何的意见或建议,请邮件联系。
Anything, email me.
联系方式(Contact): chengang0769###21cn.com/chengang0769###google.com QQ:27-3939-617(优先邮件联系,Mail priority)。
chengang 2011.4.28 dongguan guangdong china


  • 大小: 157.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics