Java中的逆向工程

mwg9r5ms  于 2022-12-21  发布在  Java
关注(0)|答案(3)|浏览(190)

我知道同样的问题在SO上已经被问了很多次了,大部分的帖子我都看过了,但是我还是没有一个满意的答案,所以我想到了社区里去问。
我被指派对一个模块进行逆向工程,并遇到以下问题:
1.团队不知道底层组件中的确切内容(模块是第三方解决方案)
1.团队只是在测试部分工作,所以他们只能向我提供有关流程的信息,但他们不知道起点是什么,起点是什么。
现在他们想让我深入挖掘代码库,并提出类图以及序列流等。
在我的职业生涯中,我从来没有在这种情况下工作过,不知道从哪里开始,如何做这项工作,我唯一拥有的就是源代码。
我有两个问题需要帮助:

  1. Eclipse是否有插件可以从源代码自动生成类图?
    1.在这种情况下,应该采取什么办法?

更新:我将可以访问源代码。所以我更倾向于使用完成任务的最佳方法

uhry853o

uhry853o1#

有几个Java反编译器可以帮助您,比如JD-Core,还有它的Eclipse版本。

jvidinwx

jvidinwx2#

我会从反编译模块开始,并确保反编译后的代码可以重新组装到一个工作库中。例如,你可以使用JD。我可以看到,现在你已经得到了源代码。
首先获得一个可编译的源代码是很重要的,因为你必须在探索它的时候添加注解和javadoc。你不必再使用原始的二进制代码,只要把反编译后的源代码当作一个文档很糟糕的普通代码就行了。重命名局部变量和方法参数也是一个好主意,这样可以让代码更容易阅读。
.java文件生成类图应该很容易。
理解流程有两种方式,手动或使用分析器。对于这两种方法,您都需要首先找到入口点,但如果您已经在使用库,这些应该是相当明显的。然后,您只需调用API方法并逐步通过代码。始终记下您遇到的任何有趣的事情。(在许多方面,探索未知代码类似于探索一个很好的古老冒险游戏中的地牢。)将这些注解转换为javadoc注解,以便您可以在沿着中生成更多信息丰富的javadoc。
探查器方法更多的是发现调用的一般模式,但是每个探查器都应该有一个可以使用的调用堆栈视图。

uhry853o

uhry853o3#

问题(2)的答案将取决于您对我的评论的回答,但是对于问题(1),请查看this page,它提供了如何使用eclipse从源代码生成UML类图的教程。

相关问题