这个计划其实已经一年多了,怪没有时间,所以一直没弄上日程。计划支持pb5-12,其实pbd内部的原则都差不多,通过ue分析,其编译的结构差不多。pb6.5,7,8,9,10,11,12都找到了软件。但是pb5找不到,迅雷上的资源也无法下载。希望有保留的同志给一份。
设计的主要目的是用于反向工程,主要是正当用途,其实反编译别人的代码也未必能看懂,或者没那么多时间去看懂。我想如果做得出来,必要的保护还是需要的,比如dbms字串不显示出来,以免作恶。对明显的加密函数部分,也不显示,以免为PJ人恶意使用。
1. pbl是两部分,一部分是我们的源码,一部分是编译的代码,其实,pbd也就是把这部分编译好的代码直接取出去形成的。
pbl的格式见:http://blog.csdn.net/chengg0769/archive/2009/02/26/3937884.aspx
pbl就没什么研究的,因为里面几乎用ue直接看代码。其实pb8以及以前版本,HDR(0x1AH在pbl中是“01”,在pbd中是“02”)和FRE,NOD部分公用,而ENT和DAT部分分为【已编译码,其实就是pbd】和源码部分。如:
ENT部分:
00000420h: 45 4E 54 2A 30 36 30 30 00 10 00 00 94 03 00 00 ; ENT*0600....?..
00000430h: 99 A2 65 4A 00 00 0A 00 73 74 72 5F 61 2E 73 74 ; 櫌eJ....str_a.st
00000440h: 72 00 45 4E 54 2A 30 36 30 30 00 14 00 00 38 00 ; r.ENT*0600....8.
00000450h: 00 00 99 A2 65 4A 00 00 0A 00 73 74 72 5F 61 2E ; ..櫌eJ....str_a.
00000460h: 73 72 73 00 00 00 00 00 00 00 00 00 00 00 00 00 ; srs.............
dat部分:
已经编译过的部分:
00001000h: 44 41 54 2A 00 12 00 00 F6 01 A6 00 03 00 60 40 ; DAT*....??..`@
00001010h: 00 00 08 00 00 00 99 A2 65 4A 99 A2 65 4A 08 00 ; ......櫌eJ櫌eJ..
00001020h: 00 00 0B 00 0E 00 00 00 00 00 60 40 60 40 01 04 ; ..........`@`@..
00001030h: 08 00 00 00 02 00 60 40 01 80 89 01 18 00 00 00 ; ......`@.€?....
00001040h: 00 00 6A 40 6A 40 01 01 26 00 00 00 00 00 6B 40 ; ..j@j@..&.....k@
00001050h: 6B 40 01 01 32 00 00 00 00 00 6C 40 6C 40 01 01 ; k@..2.....l@l@..
00001060h: 46 00 00 00 00 00 6D 40 6D 40 01 01 52 00 00 00 ; F.....m@m@..R...
00001070h: 00 00 80 40 80 40 01 01 62 00 00 00 00 00 91 40 ; ..€@€@..b.....慇
00001080h: 91 40 01 01 6F 00 00 00 00 00 A4 40 A4 40 01 01 ; 慇..o.......
00001090h: 7C 00 00 00 00 00 B8 40 B8 40 01 01 8B 00 00 00 ; |.....窣窣..?..
000010a0h: 00 00 5E 40 5E 40 01 01 97 00 00 00 00 00 00 00 ; ..^@^@..?......
000010b0h: 20 20 20 20 20 20 20 00 73 74 72 5F 61 00 73 74 ; .str_a.st
000010c0h: 72 75 63 74 75 72 65 00 6D 61 69 6C 72 65 63 69 ; ructure.mailreci
这是源码部分:
00001400h: 44 41 54 2A 00 00 00 00 38 00 67 6C 6F 62 61 6C ; DAT*....8.global
00001410h: 20 74 79 70 65 20 73 74 72 5F 61 20 66 72 6F 6D ; type str_a from
00001420h: 20 73 74 72 75 63 74 75 72 65 0D 0A 09 73 74 72 ; structure...str
00001430h: 69 6E 67 09 09 61 0D 0A 65 6E 64 20 74 79 70 65 ; ing..a..end type
2. 关于pbd的版本?
很简单的方法,用ue拼接两个pbd,如pb8和pb9编译的pbd文件,用pbkiller测试比较。发现,版本判断是在ox1000H之后部分。比较两个版本的pbd文件,发觉DAT部分紧跟的是pb使用的类型系统(目前还不确定),其实,我把0x10010H部分改动一下,pbkiller就会报: VM data not found,而把它改为:
这个字节:pb9:C1,pb8:A6,PB6:72。我目前通过修改这个字节,pbkiller可以显示为三个版本,搞笑!看来它就是判断这个地方的类型代码。
00001000h: 44 41 54 2A 00 12 00 00 F6 01 A6 00 03 00 60 40 ; DAT*....??..`@
00001010h: 00 00 08 00 00 00 3B 37 64 4A 3B 37 64 4A 08 00 ; ......;7dJ;7dJ..
00001020h: 00 00 0B 00 0E 00 00 00 00 00 60 40 60 40 01 04 ; ..........`@`@..
00001030h: 08 00 00 00 04 00 60 40 01 80 89 01 18 00 00 00 ; ......`@.€?....
00001040h: 00 00 6A 40 6A 40 01 01 26 00 00 00 00 00 6B 40 ; ..j@j@..&.....k@
00001050h: 6B 40 01 01 32 00 00 00 00 00 6C 40 6C 40 01 01 ; k@..2.....l@l@..
00001060h: 46 00 00 00 00 00 6D 40 6D 40 01 01 52 00 00 00 ; F.....m@m@..R...
00001070h: 00 00 80 40 80 40 01 01 62 00 00 00 00 00 91 40 ; ..€@€@..b.....慇
00001080h: 91 40 01 01 6F 00 00 00 00 00 A4 40 A4 40 01 01 ; 慇..o.......
00001090h: 7C 00 00 00 00 00 B8 40 B8 40 01 01 8B 00 00 00 ; |.....窣窣..?..
000010a0h: 00 00 5E 40 5E 40 01 01 97 00 00 00 00 00 00 00 ; ..^@^@..?......
3. 对于DAT中数据分节标识,以及变量的类型和初始值,还有一些操作符号,都通过ue对比分析了一下,目前正在由简单入深的分析。希望早日理出一个头绪来。以后有些东西会公布,有些东西不会公布。
慢慢补充。
分享到:
相关推荐
powerbuilder反编译器,支持5-12,pkb2.5。用于源码丢失后的工程恢复。
鄙视那些上传注册版、demo版的! 此版本不需要注册,无功能限制,支持PB6-PB12多版本,可查看源代码,可以导出为sr*格式
powerbuilder 9.0应用开发丛书,这是其中的PowerBuilder 9.0 Web开发篇
Ljtt兄推出的一个反编译PowerBuilder语言程序的工具,可以反编译出他的源代码。以前破解PB的程序最头痛的就是没有一个针对他的反编译器,而且跟踪起来就会陷入dll中无法自拔,有了这个东西就方便多了
PowerBuilder中含有开发WEB应用的模块,通过这些模块可以连接WEB服务器与PowerBuilder应用.该模块包括以下及部分,Web.PB:是几个可以在WEB服务器上执行的程序,被服务器激活后,调用PowerBuilder应用,完成客户端...
PowerBuilder数据库应用开发教程(第二版)PowerBuilder数据库应用开发教程(第二版)PowerBuilder数据库应用开发教程(第二版)PowerBuilder数据库应用开发教程(第二版)PowerBuilder数据库应用开发教程(第二版)...
《PowerBuilder 9.0软件开发项目实践》配套光盘 PowerBuilder 9.0,软件开发项目实践,配套光盘,pb源码
PowerBuilder 8 数据库开发技术系列丛书PowerBuilder 8 参考手册
PowerBuilder PB 反编译工具,如果个别可执行程序编译不成,可以下载我上传的另外一个工具试一下
PowerBuilder管理信息系统项目开发实践PowerBuilder管理信息系统项目开发实践
PowerBuilder 11.5的新特性 PowerBuilder 11显著地简化了.NET应用的开发过程,是Sybase全面支持.NET架构计划中的一部分。此次发布的PowerBuilder 11不仅可以帮助开发者灵活地部署应用程序,包括.NET Windows Forms...
PowerBuilder8.0数据库开发自学教程资料(中文高清PDF)吐血奉献
PowerBuilder数据库开发关键技术包括加密狗设计、条形码扫描仪、刷卡机等的设计 powerbuilder 8.0 附带了pbvm80.dll
PowerBuilder数据库系统开发实例导航(光盘)
powerbuilder9.0教程 powerbuilder9.0开发实例 powerbuilder9.0参考手册 本人学习使用资料
PowerBuilder是第一个基于商业开发人员的面向对象编程(OOP)的应用程序,是一种"快速构建商业应用程序"的开发工具。IDC将之称为一种"黄金标准" -- 一个用于衡量所有应用开发工具的基准。与中国...
《powerbuilder数据库应用开发技术》 powerbuilder数据库开发方面的书籍,共14个文件
数据库开发 PowerBuilder9.0数据库开发经典案例解析
PowerBuilder9.0基础开发篇00
无病毒,已测试。支持到POWERBUILDER9.0