我为一家政府承包商工作,该承包商对在他们的机器上安装什么软件非常挑剔(美国政府法律)。作为逆向工程工作的一部分,我需要弄清楚一组.class
文件的作用。反编译器会非常有帮助,但我似乎找不到符合此处设置的标准的。基本上,我需要找到一个在美国开发的反编译器。有人知道吗?免费是首选,但商业会做。
10 回答
我会通知你的雇主,对软件的来源设置先决条件不会保护他们,也不会得到他们想要的东西。美国在全球经济和全球互联网中竞争。认为他们从不安装有效的软件中获得任何优势或安全性的想法听起来有点幼稚。成为一名优秀的员工、设计师或程序员的一部分是帮助您的客户认识到他们的局限性并克服它们。你应该帮助他们取得更大的成功。
在虚拟机上安装“未经批准”的软件怎么样?
当我听到我自己的政府发出这种废话时,我感到害怕。
运行 jad -p ,重新编译源代码并将编译后的类与原始类文件进行比较。
您可以在一次性计算机/VM 实例上运行 jad。如果对编译的类有合理的协议,你就知道软件运行正常。
我想我应该回答这个问题,因为没有提供任何东西。我最终通过使用javap
,猜测了很多,然后将头撞在桌子上直到它起作用来解决了需求。javap
没有给我太多我需要的东西,因为它调用了很多本机代码。最终,我使用经过验证的猜测和检查方法得到了我需要的东西。
确实需要一个反编译器。也许 Sun (Oracle) 可以制造一个……
我假设您不能将 .class 文件从机器上移到可以安装 JAD 的实验室机器上?
我也与政府合作,如果某个特定的软件对您的项目的成功至关重要,您需要将其传达给您的 PM,然后由 PM 传达给他或她的政府对应方。之后,应该有一个清单供您的 IA 评估员遵循以批准该软件。
我认为您首先对它们进行反编译是合法的,对吗?我读过的大多数用户协议都规定你不允许对任何东西进行逆向工程......假设它是合法的,JAD 和 JD 怎么会出局?
我在DJ Java Decompiler上取得了成功,尽管它不如 JD 漂亮。还有SoThink Java Decompiler,但我个人从未使用过。
还有其他几个,但它们中的大多数似乎都是建立在 JAD 之上的,所以我猜它们也出局了。
我曾经使用过cavaj(免费软件),但我不知道它是否在美国制造。
嗯,很讽刺,你不能使用反编译器,因为反编译器是美国制造的,但你可以反编译代码吗?
如果您需要知道某个类的作用,请向创建它的人询问源代码
如果他们拒绝提供源代码,那么我认为无论如何反编译它是不合法的
这是一个想法,您可以将文件发送给其他人进行反编译,然后将反编译的源发送给您吗?