我用两个反编译器JD-GUI和Luyten反编译了.jar文件,但结果不同。
例如,来自Luyten的结果具有更具体的名称空间。
此外,源代码在某些行中也不同。
为什么两个反编译器对同一个.jar文件进行不同的反编译?
发布于 2017-02-26 09:08:38
您列出的反编译器使用不同的后端来处理java字节码的解析。
核心Luyten使用Procyon.
你可以想象像不同的学者一样的反编译器将古代文本翻译成现代英语。学者"Luyten“和"JD-GUI”转录的原始材料是相同的,但每个学者转录的文本是不同的。两者都创造了通常相当易读的现代英语,但它们都有自己的细微差别。
例如:如果古代的原始资料表明"a man reached down and picked up an apple"
,学者们可能会说:
那个人拿起了一个苹果。
那人抓起一个苹果。
两者都理解了意思,但它们略有不同。有时,一个人可能比另一个人更了解原始材料的奇怪之处,因此会比另一个人产生更准确的结果。
例如,JD-GUI can't decompile a method if the last instruction of a method is the last one in a try-catch block,但是Procyon可以把它翻译成java。
https://stackoverflow.com/questions/42241925
复制相似问题