标签: decompiling

是否有一个Java反编译器(无论是独立的还是Eclipse插件)能够反编译由AspectJ编织的代码?

我已经在互联网上扫描了各种相关问题(比如http://www.java-decompiler.com/),特别是SO.到目前为止,我只能找到两个声称是最新的Java反编译器--JD-GUIDJ Java Decompiler.

所有其余的都无法下载或停止使用.

因此,我使用包含AspectJ weaven代码的.class文件,并使用两个可用的反编译器对其进行反编译.观察结果:

  1. JD-GUI:

    在此输入图像描述

  2. DJ Java Decompiler:

    在此输入图像描述

正如您所看到的,这两个工具都无法使用AspectJ反编译Java代码.

现在我不是太挑剔,我只是习惯了.NET Reflector并在Java反编译器中寻找相同的质量,无论是独立的还是Eclipse插件,免费或商业.

我正在寻找一个实际可行的,并且使用方便.

编辑

对我的问题的回答的总体趋势是这样的 - "嗯,你想要什么?虽然,AspectJ创建有效的JVM字节码,但这个字节码不能被翻译成有效的Java".我只能说我不赞成这种观点.

让我向您介绍更多背景信息,我希望您同意这些工具可以而且应该做得更好.

反编译的Java类使用以下方面是weaven:

public abstract aspect LoggingAspect {
  declare parents: (@LogMe *) implements ILoggable;

  public Logger ILoggable.getLogger() {
    LoggerHolderAspect holder = LoggerHolderAspect.aspectOf(this.getClass());
    return holder.getLogger();
  }

  abstract pointcut loggedMethods();

  before(ILoggable o): loggedMethods() && this(o) {
    logBefore(o.getLogger(), thisJoinPoint);
  }

  after(ILoggable o) returning (Object result): loggedMethods() && this(o) {
    logAfterReturning(o.getLogger(), thisJoinPoint, result);
  }

  after(ILoggable o) throwing (Exception e): …
Run Code Online (Sandbox Code Playgroud)

java decompiling

11
推荐指数
1
解决办法
3297
查看次数

是否可以使用dotPeek反编译的源实际调试第三方代码?

我用的是VS2012.

我知道如何使用.NET Reflector调试第三方代码并始终使用它.

我想知道是否可以使用JetBrains的dotPeek或没有dotPeek的R#本身.我能够导航到反编译的第三方代码,但不能单步执行它.

有任何想法吗?

c# debugging resharper decompiling

11
推荐指数
2
解决办法
4127
查看次数

从exe文件中提取VB.NET代码

我使用VB制作了一个程序,但我丢失了源代码但是我有exe文件.如何从exe文件中提取代码?

vb.net decompiling

10
推荐指数
1
解决办法
3万
查看次数

Java反编译器写在美国

我为政府承包商工作,他们非常挑剔在他们的机器上安装什么软件(美国政府法律).作为逆向工程工作的一部分,我需要弄清楚某些.class文件集的作用.反编译器会非常有用,但我似乎找不到符合此处设置标准的反编译器.基本上,我需要找到一个在美国开发的反编译器.有人知道吗?免费是首选,但商业将做.

仅供参考,JADJD,因为它们不是在美国开发的.

java decompiling

10
推荐指数
2
解决办法
1592
查看次数

如何将exe或dll反编译为汇编

我对汇编语言非常感兴趣,我想了解exe文件如何运行dll如何运行等等...我有一个编写应用程序来反编译exe汇编代码的想法,因为我不是一个非常好的汇编程序员和由于缺乏对exe内部工作的了解,我无法做到.因为我可以读取十六进制的exe,我认为这不是不可能,但我不知道如何编写我自己的程序.任何资源或任何帮助将不胜感激.

dll assembly decompiling exe

10
推荐指数
4
解决办法
7万
查看次数

java反编译器,在实际物理位置保存行号

许多IDE的调试器与物理线路编号匹配.我正在寻找java反编译器,在反编译代码中保存实际行号.

http://java.decompiler.free.fr/不是一个.

java decompiling line-numbers

10
推荐指数
2
解决办法
1万
查看次数

使反向工程成为C共享库的提示更加困难

我对您可以采取的预防措施感兴趣,以使逆向工程C共享库变得更加困难

似乎不可能完全阻止,但你可以采取可能需要更长时间的步骤,因此不那么有吸引力/成本更高

代码混淆,编译器优化选项编译器调试标志等等(我会特别感兴趣的是gcc编译器)

对于以$或工时等方式逆向工程~5KLOC C共享库(.so大小~200kb)的相对难度的任何想法也感兴趣.

c obfuscation decompiling reverse-engineering

10
推荐指数
1
解决办法
3969
查看次数

null或空lambda作为默认值

哪种解决方案更好?使用nullable lambda或传递空lambda作为默认参数?kotlin会以某种方式优化空的lambda吗?或者创建什么都不做的新实例?

class Test1(val action: () -> Unit = {})

不幸的是我不明白生成的字节码.让我们分析一下

val test11 = Test1()

反编译后给我们

private static final Test1 test11 = new Test1((Function0)null, 1, (DefaultConstructorMarker)null);

最后作为一个lambda传递这样的东西

var1 = (Function0)null.INSTANCE;

编辑:隐藏的问题是:Kotlin如何将空lambda视为默认值?

lambda decompiling kotlin jvm-bytecode

10
推荐指数
2
解决办法
8401
查看次数

如何反编译iOS应用程序?

我想看看iOS应用程序的代码.

我下载的应用程序是.deb.

第一个问题:是否可以在iOS上安装.deb文件或者我下载了错误的文件?

解压缩.deb文件后,我得到了一些文件,包括.nib,.storyboard和其他一些文件.

我的主要问题是,如何反编译这些.nib文件?

我试图使用NibToXibConverter反编译这些文件,但我没有成功.

decompiling deb ios

10
推荐指数
1
解决办法
2万
查看次数

是否可以反编译 C++ 可执行文件

我丢失了可执行文件的源代码,但仍有实际文件。有没有办法检索原始的C++代码?

c++ executable decompiling

10
推荐指数
1
解决办法
6万
查看次数