`
yang_danny
  • 浏览: 5970 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

android apk 防止反编译技术第四篇-对抗JD-GUI

阅读更多

又到周末一个人侘在家里无事可干,这就是程序员的悲哀啊。好了我们利用周末的时间继续介绍android apk防止反编译技术的另一种方法。前三篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blog/393372)、运行时修改字节码(http://my.oschina.net/u/2323218/blog/396203)和伪加密(http://my.oschina.net/u/2323218/blog/399326),如果有不明白的可以查看我的博客的前三篇中关于这三种技术的介绍。接下来我们将介绍另一种防止apk反编译的技术-对抗JD-GUI

 

一、对抗JD-GUI原理

通常在对apk进行反编译的时候用到的最多的两个工具就是apk-tooldex2jar。利用这两个工具将apk首先反编译成classes.dex然后再将classes.dex反编译成jar文件或者将apk直接反编译成jar文件;得到jar文件以后就可以利用JD-GUI将得到的jar文件打开就可以直接查看apkjava源码了。我们花了那么大心思写的程序就这么容易被别人拿到源码是不是很不甘心,现在我就告诉你对抗JD-GUI查看源码的方法。我们在用JD-GUI查看源码时有时有些函数的根本看不到直接提示error错误,我们就利用这点来保护我们的apk。原来JD-GUI在将经过混淆处理的jar里面的class字节码文件转成java文件时,遇到函数中根本走不到的分支的特殊实现时就会提示函数error。这时我们只要查看这些提示error的文件或者函数对应的源码是有什么语句引起的,将这些语句加到我们的源码中就可以防止利用JD-GUI去查看我们的apk源码了。

 

二、原理实现

(1)假如我们的apk onCreate的函数实现如下:

1
2
3
4
5
 @Override   
 protected void onCreate(Bundle savedInstanceState) {   
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main);  
  }

 

 

(2)将我们的apk经过混淆处理后经过签名导出我们的apk,我们用dex2jar工具将我们的apk转换成jar文件

 

(3)JD-GUI打开我们的jar文件就可以看到我们的apk onCreate函数的源码了。如下:

 

(4)这时我们在apk onCreate函数里面加上不可能的特殊分支语句,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       switch(0)
       {
       case 1:
           JSONObject jsoObj;
           String date=null;
           String second=null;
           try
           {
              jsoObj=new JSONObject();
              date=jsoObj.getString("date");
               second=jsoObj.getString("second");
           }
           catch(JSONException e)
           {
              e.printStackTrace();
           }
           test.settime(date,second);
           break;
       }
    }
1
2
3
4
class test
{
   public static void settime(String a,String b){}
}

 

(5)我们用(2)中同样的方法将apk转成jar文件,然后用JD-GUI打开会看到提示error错误。如下:

 

根据上面的讲述相信大家对对抗JD-GUI的方法有了一定的了解,我只是举了其中的一个方法,之所以说是特殊的分支语句是因为不是所有的分支语句都可以让JD-GUI提示error。我们可以根据原理多注意一些这样的特殊分支语句以便用来保护我们的apk,下一篇我们将讲解另一种android apk防止反编译技术,期待大家的捧场。如果对这篇讲的技术有任何疑问:

欢迎关注个人微信公众平台:程序员互动联盟(coder_online),扫一扫下方二维码或搜索微信号coder_online即可关注,我们可以在线交流。

分享到:
评论

相关推荐

    android apk 反编译工具 带 jd-gui

    3. `Android反编译工具.exe`:这可能是另一个用于Android APK反编译的工具,可能包含了更全面的功能,如资源提取、DEX文件解析等。 4. `logs`:可能包含JD-GUI或其他反编译过程的日志信息,用于诊断和问题排查。 5. ...

    android反编译 jd-gui-windows-1.6.3 和 dex2jar-2.0

    在Android应用开发的世界里,有时候开发者需要对已有的APK文件进行分析或研究,这就涉及到反编译技术。本文将详细介绍两个重要的工具:jd-gui-windows-1.6.3和dex2jar-2.0,它们是Android反编译过程中的关键组件。 ...

    jd-gui-windows-1.6.1.zip

    标签"反编译 Android apk"正是强调了JD-GUI在这一领域的应用。通过这款工具,开发者可以查看APK中的.dex文件(Dalvik字节码),并将其转换为Java源代码,有助于理解和分析应用的工作原理,甚至用于安全审计或性能...

    apk反编译工具,APKtools,dex-tools ,jd-gui-windows

    总之,APKTools、dex2jar和JD-GUI是Android开发者和安全研究人员常用的工具,它们共同构成了一个强大的APK反编译和分析工具链,对于理解APK的工作机制、查找漏洞、学习代码实现等方面具有很高的价值。正确使用这些...

    apk反编译工具 apktool dex2jar-2.0 jd-gui

    本篇文章将详细介绍标题中提到的三个关键工具:apktool、dex2jar-2.0以及jd-gui,并提供它们在APK反编译过程中的作用。 首先,apktool是一款强大的Android APK反编译工具,由IzzySoft开发。它允许开发者解包APK文件...

    Android 反编译三件套 jd-gui,dex,apktool

    android 反编译,jd-gui,dex,apktool android 反编译,jd-gui,dex,apktool android 反编译,jd-gui,dex,apktool android 反编译,jd-gui,dex,apktool android 反编译,jd-gui,dex,apktool android 反编译,jd-gui,...

    android反编译包dex2jar-jdgui-apktool

    这个“android反编译包dex2jar-jdgui-apktool”集合就是为这样的目的而准备的工具集。下面将详细解释这些工具的功能及其使用方法。 1. **dex2jar**: - **作用**:dex2jar是一个Java工具,用于将Android应用中的....

    jd-gui.rar_JD-GUI apk abcde_itzzi_jd-gui_反编译工具

    这个名为"jd-gui.rar_JD-GUI apk abcde_itzzi_jd-gui_反编译工具"的压缩包包含了JD-GUI的相关资源,主要用于处理APK应用的反编译工作。 1. **JD-GUI介绍**:JD-GUI是一款独立的图形化用户界面工具,它允许用户直接...

    Android apk 的反编译工具(apktool-v2.0.0RC2,dex2jar-0.0.9.8,jd-gui-0.3.3.windows)

    Android apk 的反编译工具(apktool-v2.0.0RC2,dex2jar-0.0.9.8,jd-gui-0.3.3.windows)。apktool-v2.0.0RC2 用来反编译 layout 文件和 manifest 文件。dex2jar-0.0.9.8 用来反编译 classes.dex 文件。jd-gui-0.3.3....

    Android一键反编译工具 ApkDec-Release-0.1 jd-gui

    ApkDec是一款免费的绿色APK反编译工具 for android . ApkDec目前版本:ApkDec-Release-0.1 使用帮助 1.选择 all 全部编译内容包括jar、xml、及其他资源文件 2.选择 jar 只反编译并打成jar包 3.反编译后你可以...

    Android APK反编译三件套,ApkTool、dex2jar、ju-gui,完美可用

    本文将详细介绍Android APK反编译的三个核心工具:ApkTool、dex2jar以及JD-GUI,并探讨它们的工作原理和使用方法。 首先,让我们来看看ApkTool。ApkTool是一款由IzzySoft开发的开源工具,主要用于反编译和重新打包...

    Android Apk一键反编译 (支持Mac 和 Windows)

    总的来说,"Android Apk一键反编译 (支持Mac 和 Windows)"工具结合了dex2jar和jd-gui等关键工具,为用户提供了一个跨平台、便捷的反编译解决方案。通过这个工具,开发者和研究人员可以快速获取APK的源代码信息,从而...

    APK反编译 dex2jar jd-gui

    2、cmd命令行下进入到dex2jar-0.0.7.9-SNAPSHOT目录下,输入命令dex2jar.bat classes.dex ,等待反编译完成,会在dex2jar-0.0.7.9-SNAPSHOT目录下生成classes.dex.dex2jar.jar; 3、打开jd-gui.exe,openfile打开...

    android反编译工具jd-gui

    "android反编译工具jd-gui"就是这样一个工具,它可以帮助开发者将已编译的Java字节码转换回源代码,便于阅读和分析。JD-GUI是一款强大的反编译工具,特别适用于快速查看和理解Android应用的Java代码。 JD-GUI的主要...

    Java/APK全套反编译工具(apktool jd-gui dex2jar )

    Java/APK反编译工具是Android开发者和逆向工程师常用的一套工具,它们主要用于分析、修改和重新打包Android应用程序(APK)。这套工具包括apktool、jd-gui、dex2jar,以及一个可能的更新版本apktool_2.4.0.jar。下面...

    java反编译神器-jd-gui-jadx-luyten

    JD-GUI 是一个由 Pavel Kouznetsov 用 C++ 开发的 Java 反编译工具; luyten是Procyon-Decompiler的GUI,是一款操作简单、功能实用...jadx是一款Android反编译gui工具,它支持apk、dex、jar、class、zip、aar等文件。

    Android apk 反编译工具 dex2jar-0.0.7-SNAPSHOT

    2. **APK反编译流程**:反编译APK通常包括以下几个步骤: - **提取.dex文件**:首先,我们需要使用解压工具(如7-Zip)打开APK文件,从中提取出.dex文件。 - **转换为.jar**:然后使用dex2jar将.dex文件转换为.jar...

    mac版 安卓反编译工具apktool dex2jar-2.0 jadx-0.6.1 jd-gui-osx-1.4.0

    在Android应用开发领域,有时需要对APK文件进行反编译以查看其源代码或进行二次开发。在Mac系统上,有一些专用的工具可以帮助我们完成这个任务。标题中提到的"mac版 安卓反编译工具apktool dex2jar-2.0 jadx-0.6.1 ...

    APK反编译工具 查看源码Androidfby和jd-gui

    本文将深入讲解两个常用的APK反编译工具——Androidfby和jd-gui,并提供详细教程。 **Androidfby** Androidfby是一款强大的APK反编译工具,它能够将APK文件中的Dalvik字节码(.dex)转换为Java源代码。主要功能包括...

    linux平台上的android apk软件反编译工具

    在Android应用开发领域,了解如何对APK进行反编译是非常重要的技能,这有助于学习、调试和分析其他应用的工作原理。在Linux平台上,有几种工具可以帮助我们实现这一目标,其中包括apktool、jd-gui和dex2jar。这些...

Global site tag (gtag.js) - Google Analytics