我不知道程序是用什么语言编写的,但是我想找一个可以反编译其源代码并找出它所用语言的反编译器.
如果用pascal,c,bas,vb,qb或者这种方式制作它并解码/保存为可读的.src
像exe2bin或exe2src之类的东西我有一个coupple DOS程序,我认为是用pascal制作的.我需要反编译这些程序,以便我可以使它们成为Win32应用程序.
我有一个旧的.JAR文件。我可以使用JD-GUI对其进行反编译,但这为我提供了一组类文件。我正在尝试遵循代码,但是各个类之间的联系有限。
我可以手动遵循代码,但是有一种方法可以“重新链接”或创建项目,以便我可以更轻松地导航。
JD-GUI在强调某些类时会部分执行此操作,但只会带我进入该类。我想直接进行声明或查看所有用法。
我发现以下编译器生成的代码使用DotPeek分析.NET程序集之一:
[UnsafeValueType, NativeCppClass]
[StructLayout(LayoutKind.Sequential, Size = 16)]
internal struct DWriteTextAnalysisNode<MS::Internal::Text::TextInterface::Native::IDWriteNumberSubstitution *>
{
}
Run Code Online (Sandbox Code Playgroud)
我想知道它意味着什么?如何在C#中重写它?特别是这部分:
<MS::Internal::Text::TextInterface::Native::IDWriteNumberSubstitution *>
Run Code Online (Sandbox Code Playgroud) 正在运行服务器.一个人被解雇了.他删除了源代码.我们必须反编译....:我注意到几个奇怪的东西:
1)变量declerations也在程序的中间随机点2)没有HashMaps的类型安全性,例如
HashMap<Integer , Boolean> s = new HashMap<Integer , Boolean>();
Run Code Online (Sandbox Code Playgroud)
变成了HashMap s = new HashMap(); 一般来说,列表和收藏集也是如此.它也有一些副作用导致一些异常((Long)list.get(a_long).longValue()); 添加的内容是强制转换和longValue调用
3)我也注意到了一些垃圾编码
这些事情是否因为我反编译程序而发生,或者由于前编译器的编译器或愚蠢而发生了这些事情?
我是一名 kotlin 和 Java 开发人员,最近我开始分析 kotlin 生成的字节码。我发现了很多包装器代码和编译器生成的其他内容,以便将我在 Kotlin 中编写的代码转换为 Java。
所以,我的问题是:
想象一下,我有一个应用程序,其代码 100% 用 kotlin 编写。依赖项和主应用程序。所有科特林。
非常感谢。
我知道Kotlin Native,但我认为它将来只会应用于Android。
我写了一个 Java 程序,然后编译它,然后反编译它并得到一个 Java 文件。反编译器将精确缩进的精确 Java 文件返回给我的原始 Java 文件,但这就是反编译器所做的,这不是问题,在我脑海中燃烧的问题是缩进。
由于反编译的 Java 文件与原始文件具有完全相同的缩进,因此我得出结论,类文件也存储了缩进数据。
现在的问题如下:
如果是:
为什么类文件需要知道缩进?
缩进是为了可读性,没有人读取类文件,那么为什么类文件不能存储它并节省一些空间呢?
类文件只是一个加密的 Java 源文件,反编译器可以在其中解密以返回原始文件吗?
在 Eclipse 中打开 *.class 文件时,Class File Viewer使用默认编辑器显示该类的不适合编码的视图。
在我的 Eclipse 实例上安装了多个反编译器,我可以“手动”使用它们来打开我的 *.class 文件,以便它显示在编辑Class Decompiler Viewer器中。
我想要的是将默认编辑器从 更改为 ,Class File Viewer以便Class Decompiler Viewer当我打开 *.class 文件(例如通过在视图中双击它Package Explorer或通过Open Type...对话框)时,它会直接在右侧视图中打开。
目前,Class File Viewer无论我的设置如何,*.class 文件都会在编辑器中打开。我必须返回视图Package Explorer,右键单击 *.class 文件,然后在选项中明确选择所需的反编译器,Open Class With以在编辑器中打开它Class Decompiler Viewer。
我已将Class Decompiler Viewer编辑器设置为 *.class 文件的默认编辑器,应用了该编辑器,甚至重新启动了 Eclipse,但我打开的所有 *.class 文件仍然是默认的Class File Viewer。

反编译器首选项还可以选择将 hisslef 设置为 *.class 文件的默认编辑器,但我这边没有成功:

有没有办法强制默认的 *.class 文件编辑器使用其他编辑器Class File …
说我有
private void ThisIsMySecurityMethodPleaseLookHERE() {
//security stuff
}
Run Code Online (Sandbox Code Playgroud)
在我的程序中,但是在任何实际执行的代码中都没有调用该方法.它被编译为字节码吗?或者Java编译器是否识别出这个事实并将其过滤掉?我知道它永远不会成为PAST字节码,因为它不是真正的调用.
我问,因为我知道Java很容易反编译.当他们反编译我的.class文件时,我的所有未使用的方法也会出现吗?
我认为情况并非如此,因为如果是这样的话,每个java文件都会有膨胀代码隐藏真实代码,并通过混淆器传递.
我只是试图想到除了混淆之外的方法来抵制随意的黑客.
我刚开始使用Eclipse Mars作为开发环境.我曾经在旧的eclipse版本中安装了jd-eclipse反编译器.当我尝试为这个插件安装相同的插件时,我做不到.
我需要在eclipse中使用反编译器,希望有人提出解决方案.
谢谢.
我正在研究在我的Linux Mint 17.3操作系统上安装反汇编程序(或反编译程序),我想知道反汇编程序和反编译程序之间的区别.我粗略地了解它们是什么(名称相当不言自明),但它们仍然有点令人困惑.
我读过一个反汇编程序将程序变成汇编语言,我不知道,所以对我来说似乎没用.我还读到反编译器将"二进制文件"转换为其源代码.究竟什么是二进制文件?
显然,反编译器无法反编译为C,只能使用Python和其他类似语言.那么如何将程序转换为原始的C源代码呢?
decompiler ×10
java ×6
.net ×1
android ×1
bytecode ×1
c# ×1
casting ×1
compilation ×1
decompiling ×1
disassembly ×1
dotpeek ×1
eclipse ×1
eclipse-mars ×1
jd-gui ×1
kotlin ×1
methods ×1
settings ×1
type-safety ×1