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

powerbuilder反编译器开发

阅读更多

这个计划其实已经一年多了,怪没有时间,所以一直没弄上日程。计划支持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

    "powerbuilder反编译器,支持5-12,pkb2.5" 指的是这个反编译器能够处理从PowerBuilder 5到PowerBuilder 12版本创建的PBL或PBX文件,并且特别提到了支持PKB2.5的格式。这表明该软件能够解析和反编译这些不同版本的...

    PowerBuilder反编译的工具

    在标题“PowerBuilder反编译的工具”中,我们聚焦的主题是关于如何对用PowerBuilder创建的编译后应用程序进行逆向工程,以便查看其源代码或理解其内部工作原理。 反编译是将已编译的二进制代码转换回源代码的过程,...

    shudepb反编译器

    "shudepb反编译器"是一个专为PowerBuilder应用程序设计的反编译工具。PowerBuilder是一种流行的面向对象的编程环境,主要用于开发企业级的应用程序。反编译器通常用于将已编译的二进制代码转换回源代码,以便于分析...

    app_2016_PowerBuilder_

    反编译器是将已编译的代码转换回源代码的形式,帮助开发者理解代码结构、功能,或者在丢失源代码的情况下恢复代码。在PowerBuilder环境中,Power Decompiler通常用于查看和理解PB应用程序的内部工作原理,或者在没有...

    pb 反编译器 支持10以下版本

    PB反编译器是一款专为PowerBuilder(PB)应用程序设计的工具,主要目的是为了解析和理解PB编译后的代码,通常用于逆向工程或代码分析。PowerBuilder是一种流行的可视化编程环境,尤其在企业级应用开发中广泛使用,...

    数据窗口工具,数据窗口到数据库脚本的反编译器

    "数据窗口到数据库脚本的反编译器"是专为PowerBuilder 9.0设计的工具,它能够将PB9.0及其以下版本的数据窗口对象解析并生成对应的SQL语句。值得注意的是,该工具并不支持PB9.0以上的新版本,这可能是因为新版本的PB...

    PBDeCompiler2_PowerBuilder_

    PowerBuilder是一款强大的、基于事件驱动的4GL(第四代编程语言)集成开发环境(IDE),尤其在构建数据库应用系统方面具有显著优势。 PowerBuilder的特点在于其DataWindow组件,它允许用户以图形化方式设计和操作...

    undw90.rar_PB UN_PowerBuilder_undw_undw.p

    PowerBuilder是一款强大的开发工具,主要用来构建企业级的应用程序,特别是那些依赖数据库的系统。它的数据窗口组件是其核心特性之一,允许开发者方便地处理数据库操作。 在描述中,“逆向已经编译发行pb系统中数据...

    powerbuilderbkiller

    在IT行业中,PowerBuilder是一款历史悠久且功能强大的客户端/服务器(client-server)应用程序开发工具,尤其在数据库应用开发领域有着广泛的应用。"powerbuilderbkiller"这个主题,实际上指的是针对PowerBuilder...

    PowerbuilderDeCompiler

    这款反编译器的主要功能是将PowerBuilder的.pbl(PowerBuilder库)文件转换回源代码,从而帮助开发者理解和重构已编译的二进制代码。 在描述中提到的"PB反编译器",PB是PowerBuilder的简称,它表明了该工具的适用...

    PB反编译程序

    这可能是因为PowerBuilder的编译器在后续版本中增强了代码混淆和保护机制,使得反编译变得更加困难或不可能。随着软件保护技术的发展,高级版本的PowerBuilder可能采用了更复杂的加密和混淆技术来保护源代码不被轻易...

    Pb的反编译大师

    “PB DeCompiler_V2017.07.13_DEMO”是压缩包中文件的名字,这表明它是一个特定版本(2017年7月13日版)的PowerBuilder反编译器的演示版本。DEMO通常意味着它是试用版,可能有功能限制或者时间限制,用于让用户在...

    最新版PB防反编译程序

    描述中提到的“防止用PB反编工具查看PB程序源码”,这表明该程序的主要功能是阻止常见的反编译手段,确保即使有人尝试使用特定的PowerBuilder反编译器,也无法轻易获取到源代码。这通常涉及到对编译后可执行文件的...

    PBKiller 1.5.07

    总之,PBKiller 1.5.07 是一个强大且专业的PowerBuilder反编译工具,为那些需要访问和理解无源代码的PB应用程序提供了可能的解决方案。但使用时应谨慎行事,尊重知识产权,并遵循合法使用的原则。

    shudepb.exe

    POWER Builder 是一种流行的面向对象的集成开发环境(IDE),主要用于构建数据库应用程序,它使用PBL(PowerBuilder Library)库文件存储源代码。 【描述】"POWER builder 反编译 demo版 无法看到函数的所有长度" ...

    PBKiller2.5.18.7z

    PowerBuilder是一种流行的面向对象的编程环境,主要用于开发企业级的数据库应用系统。这款工具的出现,使得开发者或者逆向工程爱好者有可能查看并理解PowerBuilder生成的编译后的.pbd文件中的源代码逻辑,尽管原始的...

    pbkiller_downcc_PbDecompiler_PBKILLER_zip_

    PBKiller是一款专门针对PowerBuilder应用的反编译工具,标题中的"pbkiller_downcc_PbDecompiler_PBKILLER_zip_"暗示了这是一款下载资源,包含有"PbDecompiler"的功能,即PowerBuilder的反编译器。PowerBuilder是一种...

    pbkiller程序

    PBKiller应运而生,它是一个反编译器,旨在揭示PowerBuilder应用程序的源代码结构,使开发者或者逆向工程师能够理解和分析PBL文件的内容。使用PBKiller,用户可以提取出类、函数、变量等编程元素,尽管无法恢复到...

    pb2xls(dll、pbl).zip

    不过,需要注意的是,反编译的代码可能难以阅读,因为PowerBuilder的编译器会进行一定的优化和代码混淆。 在PowerBuilder环境中,数据窗口(DataWindow)是用于处理和显示数据库数据的关键组件。它能够以多种格式...

Global site tag (gtag.js) - Google Analytics