oracle - 为什么没有 oracle Forms 或 Reports 反编译器? (技术上)

标签 oracle forms oracle10g report decompiler

我不明白为什么我找不到这样的工具(oracle Forms 或 Reports 反编译器)

这非常有值(value),因为许多企业都使用基于 Oracle 的系统。

有谁知道 .FMX 或 .REP 格式文件结构中有什么特殊之处,导致无法为其构建反编译器?

最佳答案

考虑到他们刚刚因 SAP 侵犯知识产权而获得的 13 亿美元赔偿,甲骨文可能不是最好的选择。公司要么拥有自己的内部开发系统,包括源代码,要么从大公司购买第三方应用程序(加上支持)。他们为后者付出了很多代价,一家大公司会三思而后行,是否会做一些非法的事情来欺骗另一家大公司。

因此此类软件的合法市场非常小。

从技术角度来看,在 Forms 3.0 之后,“源”也不再是直接文本,因此您很难将 FMX 解码为可理解的内容,然后将其重新组装成有效的 FMB。

加上多个版本的 Forms(主要版本和单独的补丁集),创建在各种平台上运行的可执行文件。

大量的努力,小市场,法律问题......

<小时/>

没有资源,只有模糊的内存。

早在 Forms 3.0 时代,您就可以手动编辑 INP 文件(源代码,相当于 FMB),因为它们是平面文本。

当他们转向 FMB 时,我记得曾考虑将 FMB 转换为 FMT(文本格式),进行更改,然后再次返回。但转换为能被接受的 FMB 是一个问题。如果您从 .class 创建 .java,您将获得一个通过编译器运行的文件,它会告诉您源代码有什么问题(如果有的话)。 java 编译器旨在获取外部创建的内容(例如在文本编辑器中)并解析它并返回任何解析问题。

如果您手动创建 FMB 并且错误,它会在加载时出错或直接崩溃。它的目的不是告诉您“源代码”有什么问题,因为它无意加载外部创建的内容。

因此构建有效的 FMB(更不用说从 FMX 构建 FMB)非常棘手。

将 FMX 解析为可读格式而不是 FMB 可能是可行的。但绝大多数 Forms 用户都会拥有 FMB,并且将 FMB 解析为可用内容的用例比 FMX 更多。并且有一些实用程序可以执行此操作(包括 Oracle 本身的 Forms-to-Apex 迁移工具,以及一些第三方应用程序,例如 PITSS 中的应用程序)。

关于oracle - 为什么没有 oracle Forms 或 Reports 反编译器? (技术上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4271738/

相关文章:

JSON_QUERY : Path expression based on variables?

oracle - Oracle 序列的 MAXVALUE 的用途是什么?

sql - 我在 Oracle 中提交的频率

jquery - 我的代码有问题吗?

python - 无法使用 python mechanize 从网站访问表单

sql - 如何确定字符串是否为 SQL 中的数字?

oracle - 选择最后 12 行 oracle

javascript - 如何将Javascript点击功能应用于没有类的元素?

database - Oracle:选择日期范围内的值以及缺少值的日期

oracle - 动态选择分区