在查看一些反编译的C代码时,我看到了这个:
movl -0xc(%rbp), %esi
movl %esi, -0x8(%rbp)
Run Code Online (Sandbox Code Playgroud)
这对应于此C代码:
x = y;
Run Code Online (Sandbox Code Playgroud)
这让我想:怎么就GCC移动y到%esi,然后移动%esi到x而不是仅仅移动y到x直接?
如果重要的话,这是整个C和反编译代码:
int main(void) {
int x, y, z;
while(1) {
x = 0;
y = 1;
do {
printf("%d\n", x);
z = x + y;
x = y;
y = z;
} while(x < 255);
}
}
Run Code Online (Sandbox Code Playgroud)
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x0, -0x4(%rbp)
movl $0x0, -0x8(%rbp) ; x = …Run Code Online (Sandbox Code Playgroud) 是否有与.NET Reflector等效的Java ?
编辑:更具体地说,反编译就是我所追求的.
我正在寻找一个批量反编译Java类的程序.我找到了JAD,但它不支持Java的一些新功能,这个程序的好处是它可以从命令行执行并自动生成*.java文件.
我还发现了JD-GUI.它支持Java的大多数功能,但缺点是它不能进行批处理.您需要使用该程序打开该类文件,然后单击"保存".
有没有办法让JD-GUI像JAD一样进行批处理?
我有一个旧的DLL停止工作(log2vis.dll),我想查看它内部,看看它使用了什么对象.
DLL是用C++(而不是.NET)编写的.有没有一个工具可以反编译/反汇编C++文件?
我们计划使用C#和MySQL开发客户端服务器应用程序.我们计划像任何其他软件实用程序一样在货架上销售产品.我们担心我们的产品反编译在可用性和捆绑功能方面确实比竞争对手有一些优势.
我们如何防止我们的软件反编译,因此产品的业务逻辑仍然完好无损?
我们听说过Reflector和其他反编译器,它们使我们的代码非常容易被复制.
我们的客户群不是公司,而是医生,他们自己可能不会这样做,但我们的竞争对手可能想要复制/禁用许可,甚至复制代码/功能,以便我们的产品价值在市场上下降.
任何阻止这种情况的建议都是受欢迎的.
我想改变.class文件的方法.我安装了JD Eclipse Decompiler并打开了.class文件.我添加了一些代码并保存.class文件.但是,.class文件没有改变.
我不知道如何使用反编译器.如果可能的话,如何在不使用反编译器的情况下更改.class文件.
我正在使用Ubuntu.
问候
编辑:
这是我的反编译代码:
/* */ package org.hibernate.id;
/* */
/* */ import java.io.Serializable;
/* */ import java.sql.ResultSet;
/* */ import java.sql.SQLException;
/* */ import java.util.HashMap;
/* */ import java.util.Properties;
/* */ import org.apache.commons.logging.Log;
/* */ import org.apache.commons.logging.LogFactory;
/* */ import org.hibernate.HibernateException;
/* */ import org.hibernate.MappingException;
/* */ import org.hibernate.dialect.Dialect;
/* */ import org.hibernate.type.Type;
/* */ import org.hibernate.util.ReflectHelper;
/* */
/* */ public final class IdentifierGeneratorFactory
/* */ {
/* 25 */ private static final Log …Run Code Online (Sandbox Code Playgroud) 我用它构建了一个简单的可执行程序Go.
我已经将代码编译成静态二进制程序.
我想反编译输出二进制文件并获取Go源代码.
这可能吗?
我使用过DJ Java Decompiler,它有一个方便的GUI,但似乎最新版本只是一个试用版并强迫你在一段时间后购买该软件(我记得使用早期的免费版本大约一年前在以前的工作).
我知道Jad和Jadclipse,但我喜欢DJ Java Decompiler的是它与Windows资源管理器集成 - 所以我可以简单地在WinRAR之类的东西中打开一个JAR,通过软件包导航,然后双击一个.用于查看反编译源的类文件.
任何人都可以推荐其他好的,免费的.class观众吗?我想到的标准是:
换句话说 - 我想尽可能找到最接近.NET Reflector for Java的东西.
我知道,这里有很多类似的问题.我不是在问我是否可以保护我编译的Java类 - 因为很明显你会说"不,你不能".我在问什么是保护Java类不被反编译的最着名的方法?如果您知道该领域的任何研究或学术论文,请告诉我.如果您使用过某些方法或软件,请分享您的经验吗?任何类型的信息都非常有用.谢谢.
你能为Eclipse推荐一个Java反编译器吗?我的其他问题是使用来自其他Java程序的反编译代码有什么限制?非法还是什么?我不太了解许可证.谢谢阅读.
decompiling ×10
java ×6
licensing ×2
.class-file ×1
.net ×1
assembly ×1
c ×1
c# ×1
c++ ×1
decompiler ×1
dll ×1
eclipse ×1
go ×1
obfuscation ×1
ubuntu ×1
x86 ×1