我有各种二进制文件格式,我需要转储到某种文本格式,编辑然后重新编译(可能是二进制格式略有不同的版本).当然,我可以在C/C++中编写一堆实用程序代码来执行此类操作,并且可能利用库来处理文本方面(XML或JSON或其他),但这是一个不断出现的任务模式在我的工作中,在我看来,可能应该已经存在某种用于此类工作的通用工具.
显然需要某种方式来描述二进制文件格式 - 模式或类似 - 这需要支持所有明显的数据类型(字符串,各种大小的整数,bool等,浮点数也会很好),以及计数字段,长度字段,填充/对齐等等,以处理您在数据文件中找到的所有典型内容.拥有字节序支持也很有用,因为二进制文件可能具有与我们运行的平台不同的字节序.
如果这样的事情不存在我会感到非常惊讶,但到目前为止我还没有通过谷歌运气(你怎么甚至简洁地描述这样的实用工具或图书馆?).我记得最接近的是Apple的资源编译器/反编译器实用程序在"经典"Mac OS时代.这些使用了类C语法,头文件中的资源模板定义用于描述各种二进制资源的格式,您可以在这种类似C的源语法和二进制资源之间进行编译/反编译.
compiler-construction binaryfiles utility binary-data decompiler
是否可以在eclipse(我可以使用JD Java Decompiler自动查看它们)的.class文件(来自引用库)中搜索术语(例如方法名称),所以如果我浏览各种类文件,我会发现在视觉上寻找还是通过搜索每个单独的文件)。我对定位类也有类似的问题,并被告知使用ctrl + alt + h,它允许您在.class文件中定位给定类的类层次结构,但是该方法似乎不允许人们查找通过名称或诸如方法或变量之类的构造的接口。
是否有相当于stringsjar文件的Unix 命令?
举个例子,如果我有这个Java文件:
public class Foo {
String foo = "I\'m so meta even this acronym";
}
Run Code Online (Sandbox Code Playgroud)
编译并放在bar.jar中
理想情况下,我希望在bar.jar上运行一些命令,它会将字符串"我是如此元"发送到标准输出,这样我就可以了.
我试图解决的问题是,我在我的Java程序中收到一条错误消息,我想知道它来自哪个jar文件.
我遇到了一个重大问题.我正在编写一个程序,花了我3个月+来制作,今天我不小心删除了源代码.
我在NetBeans工作,我刚刚清理并构建它,所以我仍然有工作的.jar文件.该程序保存在闪存驱动器上,而不是我的计算机上,因此这些类不在回收站中.
任何人都可以告诉我如何获取我的源代码?
我有一些我想要反编译的.class文件.所以这就是我所做的:我总是遇到
javap -c "C:\users\Richard\workspace\pruebas\bin\ClassName"同样的错误ERROR:Could not find C:\users\Richard\workspace\pruebas\bin\ClassName
但是,如果我使用dir命令列出此目录中包含的文件,我可以看到它已列出.
你们有什么可能的原因吗?我做了man javap,据我所知,语法是正确的.
任何想法都非常感谢.
我以战地4为例,这可以用于任何游戏.
我一直想知道这样的事情是否可行:
由于BF4正在运行客户端,这意味着您拥有构成游戏的所有代码.
它在技术上是否可以反编译代码并查看它的来源?
一直到游戏的核心机制?
或者是否有某种加密保护它?
我确实意识到,如果你成功地反编译这样的东西,那将是一个混乱处理而根本没有组织,但是,嘿,它仍然是源头.
只是一些我无法找到任何其他地方的答案.
尝试恢复我不久前写的应用程序(不要存储在DropBox中),我解压缩了我的.apk并尝试使用
d2j-dex2jar classes.dex
Run Code Online (Sandbox Code Playgroud)
获取我的来源,但得到了这个消息:
Error: Could not find or load main class classes.dex
Run Code Online (Sandbox Code Playgroud)
像所有新手一样,我的主要活动(实际上只有一个)被命名为MainActivity.java,而不是Main.java.这是否是此错误的来源,如果是,我该如何解决?如果没有,我还能尝试什么?
注意:这是在DOS cmd窗口中完成的.
编辑:哇,没有人见过这个?
编辑:我没有使用ProGuard(我检查过).
我目前正在尝试调试我们的 Web 应用程序的问题 - 我可以在日志中看到一条错误消息,但我无法确定它的来源,尽管我怀疑它来自闭源电子商务提供的类之一我们使用的平台。
我有 JD-Eclipse 反编译器 - 有什么方法可以通过 Eclipse 搜索包含在一个已编译类中的一段文本吗?
最近我试图在ida pro 6.1中反编译ida out输出不正确的结果,对于所有我反编译的函数我只收到这个代码:
int result; // eax@1
return result;
Run Code Online (Sandbox Code Playgroud)
对于所有函数我反编译而不是正确的反编译输出它只显示,例如:
int __cdecl sub_975BB0()
{
int result; // eax@1
return result;
}
Run Code Online (Sandbox Code Playgroud)
其中一些有空输出:
void __cdecl sub_975C50(int a1)
{
;
}
Run Code Online (Sandbox Code Playgroud)
从2天前开始工作的奇怪之处,但突然之间就是这样.我刷新了ida 6.1安装,但没有区别.谢谢你帮助^^
从 1.21 开始,Dart VM 还支持应用程序快照,其中包括程序训练运行期间生成的所有解析类和编译代码。
$ dart --snapshot=hello.dart.snapshot --snapshot-kind=app-jit hello.dart arguments-for-training
Hello, world!
$ dart hello.dart.snapshot arguments-for-use
Hello, world!
Run Code Online (Sandbox Code Playgroud)
现在,我如何将这个 hello.dart.snapshot 文件反编译为 hello.dart?
在java语言编写的android Apk中,我们可以使用dex2jar工具反编译apk并从class.dex中获取jar文件,但是当使用flutter框架(用dart编写)开发应用程序时,如何反编译该应用程序并获取应用程序dart类?
此图像显示在 apk 资产文件中生成的快照文件。

decompiler ×10
java ×5
eclipse ×2
.class-file ×1
android ×1
apk ×1
binary-data ×1
binaryfiles ×1
dart ×1
exe ×1
flutter ×1
ida ×1
jar ×1
javap ×1
search ×1
utility ×1
windows ×1