Почему нет оракула Forms или декомпилятора отчетов?(Технически) - PullRequest
2 голосов
/ 25 ноября 2010

Я не могу понять, почему я не могу найти такой инструмент (декомпилятор форм Oracle или отчетов)

Это очень ценно, потому что многие предприятия используют системы на основе Oracle.

Кто-нибудь знает, что особенного вструктура файлов формата .FMX или .REP, которая препятствует созданию декомпилятора для них?

Ответы [ 2 ]

7 голосов
/ 25 ноября 2010

Учитывая награду в 1,3 миллиарда долларов, которую они только что получили от SAP за нарушение прав интеллектуальной собственности, Oracle, вероятно, не лучшие люди для выбора.Либо у компании есть собственные системы, разработанные собственными силами, включая исходный код, либо они покупают стороннее приложение (плюс поддержка) у крупной компании.Они платят много за последнее, и большая компания собирается дважды подумать о том, чтобы сделать что-то незаконное, чтобы обмануть другую большую компанию.

Таким образом, законный рынок для такого программного обеспечения будет довольно небольшим.

С технической точки зрения, после Forms 3.0, «источник» также не является прямым текстом, поэтому у вас есть трудности свыработка и декодирование FMX во что-то понятное, затем повторная сборка его в действительный FMB.

Плюс несколько версий форм (как основных выпусков, так и отдельных наборов патчей), создание исполняемых файлов, которые работают на различных платформах,

Много усилий, небольшой рынок, правовые вопросы ....


Нет ресурсов, кроме смутных воспоминаний.

Еще во времена Forms 3.0 вы могли вручную редактировать файлы INP (исходный код, что-то вроде FMB), так как они представляли собой плоский текст.

Когда они перешли на FMB, я вспоминаю, как смотрел, как конвертировать FMB в FMT (текстовый формат), вносить изменения, а затем возвращаться обратно.Но преобразование в FMB, которое было бы принято, было проблемой.Если вы создаете .java из .class, вы получаете файл, который запускаете через компилятор, и он сообщает вам, что не так с исходным кодом (если вообще что-то).Java-компилятор предназначен для извлечения чего-либо, созданного извне (например, в текстовом редакторе), его анализа и возврата к любым проблемам с синтаксическим анализом.

Если вы вручную создаете FMB, и это неправильно, это приведет либо к ошибке при загрузке, либо простоавария.Он не предназначен для того, чтобы сообщать вам, что не так с «исходным кодом», потому что он не предназначен для загрузки чего-то, что было создано извне.

Итак, создание действующего FMB (не говоря уже о FMB изFMX) сложно.

Разбор FMX в удобочитаемый формат, а не в FMB, может быть выполнимым.Но подавляющее большинство пользователей форм имеют FMB, и есть больше вариантов использования для разбора FMB во что-то пригодное для использования, а не FMX.Для этого есть утилиты (в том числе инструмент миграции Forms-Apex от Oracle iself, а также некоторые сторонние приложения, такие как PITSS ).

1 голос
/ 25 ноября 2010

Я уверен, что вы ответили на свой вопрос: It's very valuable because many enterprises use oracle based systems.
Также очень важно, чтобы оракул не мог декомпилировать их системы

...