Oracle Forms10g 提供了一个工具来将 Oracle Forms 模块从 Oracle Forms Builder 使用的二进制格式 (.FMB) 转换为文本格式 (.FMT)。
例如,如果您使用 Oracle Forms Builder 创建一个名为mymodule.fmb的模块,然后调用
frmcmp module=mymodule.fmb script=yes batch=yes logon=no
从命令行,Oracle Forms Convert 实用程序将从文件 mymodule.fmb 创建一个名为mymodule.fmt的文件。这个文本文件应该是人类“可读的”,除了触发器和程序单元的 PL/SQL 代码,这是编码的。
例如,这是一个 .FMT 文件的片段,其中包含一段编码的 PL/SQL 代码
DEFINE F50P
BEGIN
PP = 10
PI = 3
PN = 464
PL = 1138
PV = (BLONG)
<<"
00000049 00800000 00440000 00000000 00000031 0000000d 00000002 a0011519
00002420 0000045e 001f0000 00165030 5f32335f 4f43545f 32303038 31365f33
375f3039 00000006 42454749 4e0a0000 0042676f 5f626c6f 636b2820 27504149
53455327 20293b0a 69662066 6f726d5f 73756363 65737320 7468656e 0a096578
65637574 655f7175 6572793b 0a656e64 2069663b 00000005 0a454e44 3b000000
1d574845 4e2d4e45 572d464f 524d2d49 4e535441 4e434520 28466f72 6d290000
您是否曾尝试解码此类文件,以便能够提取表单的 PL/SQL 代码?
如果能够在大量 .FMT 文件的 PL/SQL 代码中搜索字符串,而不是使用 Oracle Forms Builder 手动打开每个对应的 .FMB 文件,并在每个文件中搜索字符串,这将非常有用其中。
谢谢!