我已经盯着这个问题看了好几个小时了。任何帮助都是非常感谢的。
我编写了使用“嵌入式Jode jar文件”中的jode反编译器的代码。我想使用这个版本,因为它遵循Lesser GNU Public License。
Decompiler d = new Decompiler();
try {
FileWriter fw = new FileWriter("c:\\jode.txt");
d.setClassPath("C:\\mycode");
ProgressListener p = new ProgressListener() {
我想看看从我自己的源代码中生成的代码,但是似乎这个想法并没有使用使用IntelliJ的新的Fern花插件来反编译它们。
至少我有标题评论
// IntelliJ API Decompiler stub source generated from a class file
// Implementation of methods is not available
这样的方法:public void update() { /* compiled code */ }
同时,在外部库(例如JDK)中,我看到了正常的标头和反编译代码。
// Source code recreated from a .c
我正在尝试运行ghidra套件中的二进制文件。(实际上,我正在运行ghidra本身,但它无法在内部运行二进制文件)。
[nix-shell:~]$ ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile
bash: ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile: No such file or directory
我无论如何也找不出问题是什么:我读到库丢失会导致这种情况,而ldd报告libstdc++.so.6丢失了。在花了很大力气让libstdc++.so.6被拾取
我按照github.com/linkedin/qark的指导成功安装了Qark,但当我运行扫描时,它返回下面的错误。另一件事是,当我对java文件运行扫描时,一切都运行得很好。我真的很困惑是什么导致了这个错误,因为我不能理解它。
对于那些可能不知道的人来说,Qark是一个评估移动应用程序安全性的工具。
以下是错误日志:
Decompiling...
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
-e/-o can only used with one file
Picked up _J
我正在使用Intellij Idea 14与大型java项目合作,其中编译了大量代码,并且没有源代码。
据我所知,Idea不能像eclipse那样在编译代码中进行搜索,但它可以使用内置的fernflower对单个文件进行反编译,这也提供了通过编译代码进行调试的可能性。
有没有一种方法可以像Idea一样一次反编译所有编译过的代码,并将其附加到项目中,这样就可以在没有在反编译源代码中放松调试功能的情况下搜索"Project and Libs“?
我尝试将Bytecodeviewer与不同的fernflower选项一起使用,但结果是在附加反编译的源代码后,调试中断(显示错误的行)。
我编写并开发了这个应用程序:
namespace Test
{
class Program
{
static void Main(string[] args)
{
var myClass = new MyClass();
foreach (var item in myClass.CountFrom(1, 4))
{
Console.WriteLine(item);
}
我正在尝试将.class文件转换为.java。我只有.class文件。我使用了jad,但我得到的错误是:
The class file version is 49.0( only 45.3, 46 and 47 are supported) JavaClassFileParseException.
如何解决此问题?请提供您宝贵的意见。
简单的方法是使用: SeeMyCode
我一直在看一个Flash游戏(link)的代码。然而,我很难理解其中一些函数是如何工作的,特别是因为它们中的一些函数定义我认为无法通过编译器。 以下是来自TodCommon.as的一些代码,这些代码似乎与自身冲突(或者至少使用了糟糕的命名约定)。 private static var gFlashingColor:Color = new Color();
final public static function ClampFloat(ClampInt:Number, ClampInt:Number, ClampInt:Number) : Number
{
if(ClampInt &
我不明白为什么java语言的实现者使它成为最终变量,在lambda中使用并从函数作用域传递到那里。
我解压缩了这段代码:
public class Main {
@FunctionalInterface
interface Test {
void method(int t);
}
static void test(Test t) {
t.method(3);
}
public static void main(String... args) {
int a = 3;
test((
我能够使用Mono.Cecil和ICSharpCode.Decompiler为类型或程序集生成代码。
但是,如果我试图为单个方法生成代码,我会得到一个错误"Object reference not set to a instance of an object“。
你们能给我一些提示吗?感谢大家的帮助。
为程序集内的所有类型生成代码的代码:
DirectoryInfo di = new DirectoryInfo(appPath);
FileInfo[] allAssemblies = di.GetFiles("*.dll");
foreach (var assembly
我使用Eclipse Ant脚本用ProGuard混淆了我的jar。
我使用的配置文件与这个几乎相同。我刚刚使用-libraryjars选项添加了更多对正确库的引用,并使用-dontnote省略了两个警告
之后,我使用这些库将生成的jar包含到fat jar中。如果使用上面提到的.cfg,它可以正常工作。
但是并没有做太多的混淆。在中,据说使用
-keep public class mypackage.MyMain {
public static void main(java.lang.String[]);
}
所以这是改变的
-keep public class * {
pu