虽然我不应该列出给定的整个 4 行示例(因为这是一个家庭作业问题),但我很困惑应该如何读取它并将其翻译成 C 语言。
cmovge %edi, %eax
到目前为止我所理解的是,该指令是当结果 >= 时的条件移动。它将函数的第一个参数%edi与整数寄存器(在上一行汇编代码中%eax分配了另一个参数值)进行比较。%esi但是,我不明白它的结果。
我的问题是解释优化后的代码。它不操作堆栈,而且我不确定如何用 C 语言编写它(或者至少gcc我什至可以在编译时使用开关来生成相同的结果)。
有人可以举几个小例子来说明如何cmovge将指令转换为 C 代码吗?如果它本身的代码行没有意义,请随意用它来弥补。
这是通过虚拟化 Linux 操作系统 (CentOS 7) 在 x86-64 中进行的组装。
我需要将整个 IL 代码或反编译源代码保存到文本文件中。ILSpy 反编译引擎 ICSharpCode.Decompiler 可以实现这一点吗?
这里是JustDecompile反编译的一个ASP.NET Core nuget包,我看不懂<>c.<>9. 我发现他们没有声明,很奇怪,Nuget包名是Microsoft.Extensions.FileProviders.Physical,类文件名是PhysicalFilesWatcher.
我有一个较旧的 Jar 文件,必须对其进行修改才能使其正常工作。我已经用jd-gui反编译了它,并更改了需要更改的部分。我现在想知道我必须做什么才能拿回一个罐子?我想我必须添加库,但是没有额外的 lib 目录。
我如何将所有内容放在一起?
@Stephen C“因此,当您进行更改并重新编译时,生成的“.class”文件可能会出现意外的“这到底有什么相关性?我只想要 Jar 文件的功能,而不是它的 1:1 副本。
Jar 文件未签名。签署 Jar 文件的具体原因是什么?如果我从另一个程序启动它?
有什么方法可以做到吗?
自RedGate宣布他们将停止生产RedGate Reflector的免费版本以来,他们已经成为.NET反编译器开发的一个复兴.一个开源反编译器ILSpy允许您逐步调试已编译的程序集.我用它来调试一些我缺乏源代码的程序集.但是,它经常崩溃我需要做的嵌套调试级别.
理想情况下,我更喜欢与Visual Studio 2010或2008集成的东西,但我会满足于任何稳定的东西.免费是优选的.
我一直在看一些Java字节码,我一直在寻找一个奇怪的模式,我似乎无法转化为任何合理的Java结构:
if ( <cond1> )
goto Label;
do {
<code1>
Label:
<code2>
} while ( <cond2> );
Run Code Online (Sandbox Code Playgroud)
是否有任何合理的Java构造可以反编译为?我能想到的是非常复杂的模式,它引入了额外的状态来跟踪它是否是循环的第一次迭代.
在创建函数时,函数范围之外的变量如何被拉入函数中?我尝试反编译,但我无法理解它.它看起来像是使用了putfield.putfield是否指向对象引用?
我们正在开发一个Android应用程序.我们知道使用像APKTool,dex2jar这样的工具可以获得APK的源代码.
1)他们可以获得完整的源代码,以便他们可以轻松地重建相同的APK吗?
2)获取源代码后,其他人是否有可能以自己的名义上传重建的APK?
3)如果可能,如何防止这种情况?
我们的客户对此很感兴趣.