为什么没有 oracle Forms 或 Reports 反编译器?(技术上)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4271738/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Why there is no oracle Forms or Reports decompiler ? (Technically)
提问by Ahmed Khalaf
I cant understand why I can't find such tool (oracle Forms or Reports decompiler)
我不明白为什么我找不到这样的工具(oracle Forms or Reports decompiler)
It's very valuable because many enterprises use oracle based systems.
它非常有价值,因为许多企业使用基于 oracle 的系统。
Does anyone know what's special in the .FMX or .REP format files structure that prevents building a decompiler for them ?
有谁知道 .FMX 或 .REP 格式文件结构中有什么特别之处可以防止为它们构建反编译器?
回答by Gary Myers
Given the $1.3bn award they just got against SAP for intellectual property infringement, Oracle are probably not the best people to pick on. Either a company has its own in-house developed systems, including source code, or they buy a third-party application (plus support) from a major company. They pay a lot for the latter and a big company is going to think twice about doing something illegal to cheat another big company.
鉴于他们刚刚因侵犯知识产权而对 SAP 获得 13 亿美元的赔偿,甲骨文可能不是最好的选择。公司要么拥有自己的内部开发系统,包括源代码,要么从大公司购买第三方应用程序(加上支持)。他们为后者付出了很多,一家大公司会三思而后行,做一些非法的事情来欺骗另一家大公司。
So the legitimate market for such software would be pretty small.
因此,此类软件的合法市场将非常小。
From a technical point of view, after Forms 3.0, the 'source' is also not straight text so you have the difficulty of working out both decoding of the FMX into something understandable, then re-assembling it into a valid FMB.
从技术角度来看,在 Forms 3.0 之后,“源”也不是纯文本,因此您很难将 FMX 解码为可理解的内容,然后将其重新组装为有效的 FMB。
Plus multiple versions of Forms (both major releases and individual patchsets), creating executables that run on a variety of platforms.
加上多个版本的 Forms(主要版本和单独的补丁集),创建在各种平台上运行的可执行文件。
A lot of effort, small market, legal issues....
很多努力,小市场,法律问题......
No resources but vague memories.
没有资源,只有模糊的记忆。
Back in the days of Forms 3.0 you could manually edit INP files (the source code, sort of equivalent of FMB) as they were flat text.
在 Forms 3.0 时代,您可以手动编辑 INP 文件(源代码,相当于 FMB),因为它们是纯文本。
When they moved to FMB, I recall looking at converting the FMB to FMT (the text format), making changes, then going back again. But converting to an FMB that would be accepted was a problem. If you create a .java from a .class you get a file that you run through a compiler and it tells you what's wrong with the source code (if anything). The java compiler is designed to take something created externally (eg in a text editor) and parse it and return any parsing issues.
当他们转移到 FMB 时,我记得看着将 FMB 转换为 FMT(文本格式),进行更改,然后再次返回。但是转换为可以接受的 FMB 是一个问题。如果你从 .class 创建一个 .java ,你会得到一个通过编译器运行的文件,它会告诉你源代码有什么问题(如果有的话)。java 编译器旨在获取外部创建的内容(例如在文本编辑器中)并解析它并返回任何解析问题。
If you manually create an FMB and it is wrong it will either error on load or just crash. It isn't designed to tell you what is wrong with the 'source code' because it isn't intended to load something that has been created externally.
如果您手动创建一个 FMB 并且它是错误的,它要么在加载时出错,要么只是崩溃。它不是为了告诉你“源代码”有什么问题,因为它不是为了加载外部创建的东西。
So building a valid FMB (let alone a FMB from an FMX) is tricky.
因此,构建有效的 FMB(更不用说来自 FMX 的 FMB)是很棘手的。
Parsing an FMX into a readable format, rather than to an FMB, might be doable. But the vast majority of Forms users will have the FMB and there's more use cases for parsing an FMB into something usable rather than the FMX. And there are utilities around to do this (including the Forms-to-Apex migration tool from Oracle iself, plus some third-party apps like those from PITSS).
将 FMX 解析为可读格式,而不是 FMB,可能是可行的。但是绝大多数 Forms 用户都会有 FMB,并且有更多的用例可以将 FMB 解析为可用的东西而不是 FMX。并且有一些实用程序可以执行此操作(包括来自 Oracle 的 Forms-to-Apex 迁移工具,以及一些第三方应用程序,例如来自PITSS 的应用程序)。
回答by Woot4Moo
I am pretty sure you answered your own question: It's very valuable because many enterprises use oracle based systems.
It's also very valuable to oracle that you can't decompile their systems
我很确定你回答了你自己的问题:It's very valuable because many enterprises use oracle based systems.
你不能反编译他们的系统对 oracle 来说也很有价值