标签: decompiler

来自APK的源代码

我在搜索引擎中搜索有关将dex文件转换为jar文件但我无法在code.Google.com中找到dex2jar文件

我从这里得到了基本的想法.

但是,当我从dex2jar-0.0.9.8.zip形式的下载文件在这里,我无法找到dex2jar.jar文件,以便你能告诉我别的地方我能找到的文件?

java android decompiler apk dex

4
推荐指数
1
解决办法
9984
查看次数

ICSharpCode.Decompiler + Mono.Cecil - >如何为单个方法生成代码?

我可以使用Mono.Cecil和ICSharpCode.Decompiler来生成类型或程序集的代码.

但是,如果我尝试为单个方法生成代码,我将收到错误"对象引用未设置为对象的实例".

你们能给我任何关于此的提示吗?感谢所有的帮助.

用于为程序集内的所有类型生成代码的代码:

DirectoryInfo di = new DirectoryInfo(appPath);
FileInfo[] allAssemblies = di.GetFiles("*.dll");
foreach (var assemblyFile in allAssemblies)
{
    string pathToAssembly = assemblyFile.FullName;
    System.Reflection.Assembly assembly = System.Reflection.Assembly.ReflectionOnlyLoadFrom(pathToAssembly);
    Mono.Cecil.AssemblyDefinition assemblyDefinition = Mono.Cecil.AssemblyDefinition.ReadAssembly(pathToAssembly,parameters);
    AstBuilder astBuilder = null;

    foreach (var typeInAssembly in assemblyDefinition.MainModule.Types)
    {
        if (typeInAssembly.IsPublic)
        {
             Console.WriteLine("T:{0}", typeInAssembly.Name);
            //just reset the builder to include only code for a single type
            astBuilder = new AstBuilder(new ICSharpCode.Decompiler.DecompilerContext(assemblyDefinition.MainModule));
            astBuilder.AddType(typeInAssembly);
            StringWriter output = new StringWriter();
            astBuilder.GenerateCode(new PlainTextOutput(output));
            string result = output.ToString();
            output.Dispose();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用于为程序集内的所有公共方法生成代码的代码: …

c# reflection icsharpcode decompiler mono.cecil

4
推荐指数
1
解决办法
5027
查看次数

如何防止我的类被反编译

我不希望我的课程被反编译.

我已经阅读了一些文章,并找到了一个专利网站 Zelix KlassMaster

市场上有哪些免费工具以类似的方式工作..

java decompiler

4
推荐指数
1
解决办法
2820
查看次数

反编译的DLL - 帮助判断它是C#还是VB.NET的线索?

当使用像DotPeek这样的东西来反编译DLL时,如何判断它最初是用VB.Net还是C#编码的?

我认为没有简单的方法可以告诉你,但是在某些反编译代码中可能会有告诉标记(即线索)?

.net c# vb.net decompiler

4
推荐指数
1
解决办法
825
查看次数

如何使用 Storyyeller/Krakatau 反编译 .class 和 jar 文件

我正在尝试使用 Storyyeller/Krakatau 反编译器反编译文件。我已经下载了相关文件并将其放在一个文件夹中。我尝试使用命令提示符使用以下语法反编译文件。

===反编译===

用法:

python Krakatau\decompile.py [-nauto] [-path PATH] [-out OUT] [-r] [-skip]
target
Run Code Online (Sandbox Code Playgroud)

PATH:用于在其中搜索类的目录、jar 或 zip 文件的可选列表。Krakatau 将尝试自动检测并添加包含核心语言类的 jar,但您可以使用该选项禁用此功能-nauto。对于多个 jar,您可以传递以分号分隔的 jar 列表,也可以-path多次传递该选项。

OUT:要写入源文件的目录名称。默认为当前目录。如果名称以 .zip 或 .jar 结尾,则输出将是 zip 文件。

-r:反编译在目录目标中找到的所有.class文件(递归地)

-skip:出现错误时继续。如果在反编译特定方法时发生错误,则回溯将作为注释打印在源文件中。如果在类级别反编译时发生错误,则不会发出源文件,并且会将错误消息打印到控制台。

target:要反编译的类名或jar名。如果指定了jar,则该jar中的所有类都将被反编译。如果-r指定,这应该是一个目录。

但我总是遇到错误。我不明白上面的语法。

请解释一下这个语法

python Krakatau\decompile.py [-nauto] [-path PATH] [-out OUT] [-r] [-skip]
target
Run Code Online (Sandbox Code Playgroud)

使用一个简单的例子。

java decompiler python-2.7

4
推荐指数
1
解决办法
6678
查看次数

HexRays - “__OFSUB__()”的目的是什么?

在以下使用 Ida pro 的 Hex 射线的反编译函数中:

int sub_409650()
{
  int v0; // ecx@1
  int result; // eax@1
  bool v2; // zf@1
  bool v3; // sf@1
  unsigned __int8 v4; // of@1
  unsigned __int16 v5; // cx@2
  unsigned int v6; // ecx@2

  v0 = gS1_dword_62EEA8 & 7;
  result = gS1_dword_62EEA8 - v0;
  v4 = __OFSUB__(gS1_dword_62EEA8 - v0, 16);
  v2 = gS1_dword_62EEA8 - v0 == 16;
  v3 = gS1_dword_62EEA8 - v0 - 16 < 0;
  gS1_dword_62EEA8 -= v0;
  gs2_dword_62EFB4 >>= v0;
  if ( …
Run Code Online (Sandbox Code Playgroud)

c reverse-engineering ida decompiler

4
推荐指数
1
解决办法
3690
查看次数

如何在android中将proguard应用到AAR库?

我开发了一个Android AAR库,其中包含客户所需的所有功能,我想在将其交付给客户之前在库上应用proguard,以便混淆代码,使代码不容易反编译。

在发布这个问题之前我用谷歌搜索了它,我发现库项目本身不运行 ProGuard,因此它们不使用任何配置,如此处提到的单击此处

我已经完成了以下配置,以便在我的库项目上应用 proguard。

buildTypes {

    debug {
        shrinkResources false
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

我已应用此规则proguard-rules.pro

 -keepparameternames
 -renamesourcefileattribute SourceFile
 -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

 -keep public class * {
public protected *;
 }

 -keepclassmembernames class * {
java.lang.Class class$(java.lang.String);
java.lang.Class class$(java.lang.String, boolean);
 }

 -keepclasseswithmembernames class * {
native <methods>;
 }

 -keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
 }

 -keepclassmembers class * implements …
Run Code Online (Sandbox Code Playgroud)

android proguard decompiler aar

4
推荐指数
1
解决办法
5524
查看次数

dexexception:不支持版本

我试图将apk转换为源代码。当我输入以下命令时

./d2j-dex2jar.sh classes.dex
Run Code Online (Sandbox Code Playgroud)

我有这个例外:

com.googlecode.d2j.DexException: not support version.
at com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java:151)
at com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java:211)
at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:104)
at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)
at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)
Run Code Online (Sandbox Code Playgroud)

我的apk版本是Oreo,而dexcompiler是dex2jar-2.0。据我所知,此dexcompiler最多支持N版本(如果我输入错了,请更正我)。我已经搜索了此异常,但是没有找到任何答案。

请帮助我解决此异常

decompiler apk dex android-8.0-oreo

4
推荐指数
1
解决办法
2523
查看次数

国际开发协会。我如何安装反编译器?

我从官方网站(hex-rays)IDA 下载,安装,一切正常。我发现需要我的功能,按 F5(反编译热键,所以我会看到 C 伪代码),并得到弹出消息:

ida 抱歉你在 Windows 上没有任何反编译器

无法理解出了什么问题,我发现在谷歌中没有关于此类消息的信息......

这是消息的屏幕: 在此处输入图像描述

decompiling ida decompiler

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

这个 Java 项目是如何使用语言保留字作为标识符的?

我使用 JD-GUI 反编译了一个 Java 项目,当我看到所有标识符都使用 Java 保留关键字,例如 int do throw extends 等时,我感到很惊讶。

这是该项目的一个片段:

public class try extends Thread {
  private int do;
  
  private JSONArray if;
  
  private int for;
  
  private String int;
  
  private String new;
}
Run Code Online (Sandbox Code Playgroud)

我在另一篇关于使用 UTF-16 编码时的文章中读到,有些字符可能看起来相同,但实际上不同,所以我使用 Notepad++ 切换了编码,但这对显示没有影响。

我也尝试使用 Github 中的一些去混淆器,但没有成功。

我知道它并没有真正使用保留关键字,但我无法弄清楚,所以这里的技巧是什么?

编辑:

这是项目中最小的类:

package tech.iresponse.break;

import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.log4j.Logger;

public class do {
  public static void do(Throwable paramThrowable) {
    Logger.getLogger("rootLogger").error(ExceptionUtils.getFullStackTrace(paramThrowable));
  }
}


/* Location:              C:\Users\User\Desktop\app.jar!\tech\iresponse\break\do.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */
Run Code Online (Sandbox Code Playgroud)

这是十六进制转储: …

java identifier keyword reserved decompiler

4
推荐指数
1
解决办法
73
查看次数