Java web applet / form逆向工程

时间:2011-06-10 16:22:10

标签: java web-applications reverse-engineering

我应该根据已停产的产品创建新产品。问题是已停产产品的原始程序员丢失了源代码(是的,真棒)。

该软件通过网络浏览器运行。当我转到他们的网址时,会弹出一个标题为“Oracle Developer Forms Runtime”的窗口。我不确定这是applet或Java插件还是其他什么,因为我只是在开发Java“命令行”应用程序。

有没有运气我可以看到在应用程序和服务器之间调用和返回的内容,以便我可以模仿类似的东西?如果是这样,我应该研究哪些工具?

3 个答案:

答案 0 :(得分:2)

鉴于我对Oracle Forms的了解(这种方式非常有限),Peter Tillemans的答案是正确的方向。 applet只是用于在Oracle Forms中构建的屏幕的胖客户端。

如果要恢复源代码,则需要查找为应用程序构建的* .fmb文件(包含源代码的Forms Builder文件)。这些将包含PL / SQL源代码以及屏幕布局,并且必须使用Oracle Forms Builder工具打开。您可能还想获取要在数据库服务器上运行的任何PL / SQL源代码的副本。

如果您丢失了FMB文件,那么您可能必须想办法从已编译的FMX文件中恢复源,这些文件实际上是由Forms Server在运行时使用的。我不知道有任何反编译器。

在我看来,反编译applet是徒劳的,因为它是Oracle Forms Java客户端的一部分(并且是Oracle Forms产品本身的一部分),旨在部署在Web服务器上。作为应用程序的一部分开发的屏幕实际上都没有编译成Java类; applet实际上执行从Oracle Forms Server接收UI信息并在屏幕上显示它的工作。是重型提升发生的Forms Server;所有业务逻辑和事务管理都发生在这个服务器上,这就是你应该追求的(它可以在FMB和FMX文件中找到)。

还可能需要考虑其他文件。

  • PLL文件将包含多个表单中使用的PL / SQL源代码。
  • MMB文件将包含菜单模块。

答案 1 :(得分:1)

您正在处理Oracle Forms应用程序。 “applet”基本上是一个胖客户端应用程序,它与Oracle应用程序后端进行通信。

您将需要Oracle Forms工具集。

可以在Forms FAQ

中找到更多信息

答案 2 :(得分:0)

有许多反编译器可能会让你在这个项目上有一个良好的开端。 http://www.google.com/search?aq=f&q=java+decompiler