我有一个项目,我试图解决一个离开(放手)我公司的人.他违反了软件工程的每一个基本原则,不使用源代码控制,在进行更多更改之前不备份源代码等.
我需要更改现场的应用程序,我没有原始的源代码,但我有一个可执行文件.我需要的是一个反编译器,它将反编译Visual Studio 6 C++应用程序并为我提供某种类型的源代码.有人有任何想法.....
我需要确定二进制文件用于编译的特定宏的值。
该文件是Linux共享库文件。
可能吗?
我曾经认为Java可以被反编译,因为它编译成字节代码而不是目标代码.这是错误的,因为隐含的假设字节代码是一些比对象代码更"人类可读"的东西.为什么用Java编写的程序可以如此容易地反编译,甚至具有相同的标识符(变量名)?我听说在C/C++中它只能反汇编到汇编但没有反编译成源代码,为什么呢?
我有由pyinstaller构建的exe,所以,我解压缩它,现在我想要解压缩文件*.pyz,其中包含所有脚本文件,但文件名没有扩展名(文件名和is_packet中的元组为True\False).示例文件列表,返回Zlib
BeautifulSoup
ConfigParser
HTMLParser
PyQt4
Queue
StringIO
UserDict
_LWPCookieJar
_MozillaCookieJar
__future__
_abcoll
_strptime
_threading_local
Run Code Online (Sandbox Code Playgroud)
如何查看,没有扩展名的文件和所有加密的文件.举例说明这个解压缩的文件:http://www.sendspace.com/file/pky00m
那么,我怎么能反编译呢?谢谢
我希望能够编辑字节码并重新编译为可执行的类文件。我不知道该怎么做。我试过用 javap -c 和 -v 反编译,编辑一些东西,然后把它改回我的类文件,但我收到一个错误“错误:找不到或加载主类 Test.class”。我还想从字节码生成 java 源代码。有什么帮助吗?我想在不使用外部程序的情况下自己做这件事。如果可能的话,我想自己做。
和标题要求的差不多。例如,如果我拿了一张 Playstation 光盘,是否可以编写一个程序将磁盘上的所有二进制文件转换回其原始代码文件、艺术资源等?这不就是解密之类的吗?如果没有,是否有可能创建一种语言或向我们当前的语言添加代码,使未来的程序可以向后转换?谢谢!
我好几次遇到过这个问题.每当我使用JD-GUI反编译并保存所有源时,它会在每行前面加上一个块注释,并在方法体中插入代码的行号.这是一个我刚刚反编译的jar的例子:
/* */ public void onEnable()
/* */ {
/* 25 */ List DropList = new ArrayList();
/* 26 */ DropList.add(Integer.valueOf(264));
/* 27 */ DropList.add(Integer.valueOf(57));
/* 28 */ DropList.add(Integer.valueOf(278));
/* */
/* 30 */ this.config = getConfig();
/* */
/* 32 */ this.config.addDefault("GiftDrops", DropList);
/* 33 */ this.config.addDefault("DropRate", Integer.valueOf(0));
/* 34 */ this.config.addDefault("GiftBoxPlayerSkin", "lol768");
/* 35 */ this.config.addDefault("CraftingRecipe.LineOne", "339,339,339");
/* 36 */ this.config.addDefault("CraftingRecipe.LineTwo", "339,264,339");
/* 37 */ this.config.addDefault("CraftingRecipe.LineThree", "339,339,339");
/* */
/* 39 */ this.config.options().copyDefaults(true);
/* 40 */ saveConfig();
/* …Run Code Online (Sandbox Code Playgroud) 我已经实现了foreach循环和while循环,它应该创建几乎相同的IL代码.
IL代码(使用C#5的编译器版本12.0.40629生成)确实几乎相同(有些数字的自然例外等),但反编译器能够重现初始代码.
允许反编译器告诉前一个代码块是一个foreach循环而后者代表一个while循环的关键区别是什么?
我在下面提供的反编译代码是使用ILSpy(2.3.1.1855)的最新版本(截至今天)生成的,但我也使用了JustDecompile,.NET Reflector和dotPeek - 没有区别.我没有配置任何东西,我只是安装它们的工具.
原始代码:
using System;
using System.Collections.Generic;
namespace ForeachVersusWhile
{
public class Program
{
public static void Main(string[] args)
{
var x = new List<int> {1, 2};
foreach (var item in x)
{
Console.WriteLine(item);
}
using (var enumerator = x.GetEnumerator())
{
while (enumerator.MoveNext())
{
Console.WriteLine(enumerator.Current);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
反编译代码:
List<int> x = new List<int>
{
1,
2
};
foreach (int item in x)
{
Console.WriteLine(item);
}
using (List<int>.Enumerator enumerator = x.GetEnumerator())
{
while …Run Code Online (Sandbox Code Playgroud) 我想反编译一个谷歌Play商店可用的Android应用程序.任何人都可以向我推荐一个在线工具或任何apktool,它将帮助我反编译apk的源代码?
提前致谢.
我从官方网站(hex-rays)IDA 下载,安装,一切正常。我发现需要我的功能,按 F5(反编译热键,所以我会看到 C 伪代码),并得到弹出消息:
ida 抱歉你在 Windows 上没有任何反编译器
无法理解出了什么问题,我发现在谷歌中没有关于此类消息的信息......
这是消息的屏幕: 在此处输入图像描述
decompiling ×10
java ×3
binary ×2
bytecode ×2
c++ ×2
android ×1
apktool ×1
assembly ×1
c ×1
c# ×1
debugging ×1
decompiler ×1
disassembly ×1
ida ×1
jad ×1
jd-gui ×1
linux ×1
macros ×1
playstation ×1
pyinstaller ×1
python ×1
visual-c++ ×1