[求助] Java 对比字节码文件是不是由源码编译出来的

2020-12-07 10:07:12 +08:00
 asanelder

俺现在有一个项目(别人的),有字节码文件和源码,但不知道这个字节码是不是源码编译出来的。现在俺想对比一下。

俺当前能想出两个方向来。

一. 将源码编译成字节码,然后对比

这种方案的困难点是

俺不知道当初字节码文件具体编译的环境是什么,如果编译出来的和现有的不同,也无法知道不同点在哪里。

还有,对比这种字节码文件使用什么工具呢?


二. 将字节码反编译成源码,然后对比

俺找了一个文件试了一下,发现可以对比,只是反编译出来的源文件和现有的源文件中稍微的不同,比如变量名,比如语句顺序,这还需要俺人工的一个一个不同点进行检查。

有没有铁子知道有什么反编译工具,可以反编译出和现有源代码一样的源码呢?这样就不需要俺人工一个一个不同点检查了。


希望各位有类似经验的,给俺出出意见。

2475 次点击
所在节点    程序员
22 条回复
YouKnowIt
2020-12-08 12:14:32 +08:00
楼主可以发一些样本看看吗,不知道你的字节码混淆没有,没有混淆的话,按文件名都能对应起来了,如果混淆了,可以看看字节码里有么有包含 sourcefile 信息
YouKnowIt
2020-12-08 12:16:51 +08:00
楼主可以发一些样本看看吗,不知道你的字节码混淆没有,没有混淆的话,按文件名都能对应起来了,如果混淆了,可以看看字节码里有么有包含 sourcefile 信息(把字节码反编译成可读文本 用 javap 命令)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/732792

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX