打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
powerbuilder反编译器开发 其2

这个计划其实已经一年多了,怪没有时间,所以一直没弄上日程。计划支持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对比分析了一下,目前正在由简单入深的分析。希望早日理出一个头绪来。以后有些东西会公布,有些东西不会公布。

慢慢补充。

————————————————

版权声明:本文为CSDN博主「chengg0769」的原创文章

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
powerbuilder反编译器开发
.net2005下datawindow.net2.0的简单使用
006ZpYUSgy1fucs3ue51ej31bk7k4nph.jpg (1712×9796)
使用arduino直接驱动1602液晶显示文字
表情匹配机制
爵以词雄-四级4000词汇一 解密单词记忆背好单词必看!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服