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

Apk反编译方法——代码混淆

 
阅读更多

Apk反编译方法——代码混淆

 

作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。

 

Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹

 

proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。

 

下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows\tools\lib\proguard.cfg的内容:

 

-optimizationpasses 5

-dontusemixedcaseclassnames

-dontskipnonpubliclibraryclasses

-dontpreverify

-verbose

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

 

-keep public class * extends android.app.Activity

-keep public class * extends android.app.Application

-keep public class * extends android.app.Service

-keep public class * extends android.content.BroadcastReceiver

-keep public class * extends android.content.ContentProvider

-keep public class * extends android.app.backup.BackupAgentHelper

-keep public class * extends android.preference.Preference

-keep public class com.android.vending.licensing.ILicensingService

 

-keepclasseswithmembernames class * {

    native <methods>;

}

 

-keepclasseswithmembernames class * {

    public <init>(android.content.Context, android.util.AttributeSet);

}

 

-keepclasseswithmembernames class * {

    public <init>(android.content.Context, android.util.AttributeSet, int);

}

 

-keepclassmembers enum * {

    public static **[] values();

    public static ** valueOf(java.lang.String);

}

 

-keep class * implements android.os.Parcelable {

  public static final android.os.Parcelable$Creator *;

}

从脚本中可以看到,混淆中保留了继承自ActivityServiceApplicationBroadcastReceiver、 ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService

 

并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。

proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了

 

完整的default.properties文件应该如下:

 

# This file is automatically generated by Android Tools.

# Do not modify this file -- YOUR CHANGES WILL BE ERASED!

#

# This file must be checked in Version Control Systems.

#

# To customize properties used by the Ant build system use,

# "build.properties", and override values to adapt the script to your

# project structure.

 

# Project target.

target=android-9

proguard.config=proguard.cfg

大功告成,正常的编译签名后就可以防止代码被反编译了。反编译经过代码混淆的apk得到的代码应该类似于下面的效果,是很难看懂的:

 

如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可

以上是小编整理出的防止代码被反编译proguard代码混淆的工具

那么在这代码混淆以后重新打包以后,这个apk文件的安全指数有多高的,接下来,我们就再进去apk文件检测阶段。

 

我们把apk文件放到专门做移动应用apk文件检测的网站--爱内测(www.detect.cn)网站去做一个安全检测,看看我们这个代码混淆是否已经安全了。



 

 

有检测报告中我们也清楚的看到这个apk文件在代码混淆这一块是已经没问题的。

 

温馨提醒:无论应用已经上线或未上线,都要定期为apk文件做安全检测,黑客的技术不断提升,即使在上线前已经做检测加密了,也有可能被黑客们给攻破。、

 

参考资料:                                            

Sun*****50博客

爱内测检测报告

  • 大小: 86.7 KB
分享到:
评论

相关推荐

    apk反编译 DoApk

    这通常涉及到一个技术过程——APK反编译。APK是Android应用程序的打包格式,包含了程序代码、资源文件、元数据等。本文将深入探讨如何使用工具如DoApk进行反编译,以及相关知识点。 1. **什么是APK反编译** APK反...

    APK 反编译 流程

    APK反编译是指将Android应用程序包(APK文件)转换回其原始的资源文件和源代码的过程。这一过程对于分析第三方应用的功能、学习他人的编程技巧或是进行安全审计等方面都有着重要的作用。APK反编译主要分为两部分:...

    android apk 反编译win系统下工具

    APK反编译是指将已编译的APK文件拆解、分析其内部结构和代码,以便于理解应用的工作原理、查看资源文件或者进行二次开发。在Windows操作系统下,有一些专门的工具可以帮助我们进行这个过程。本篇将详细介绍Android ...

    Apk反编译打包后版本

    本主题将详细介绍如何利用"Apk反编译打包后版本"中提供的工具——apktool、dex2jar和jd-gui.exe来完成这一过程。 首先,我们来了解下这些工具的作用: 1. **apktool**:这是一个强大的开源工具,主要用于反编译APK...

    apk反编译神奇

    《安卓应用反编译技术详解——以"apk反编译神器"为例》 在移动互联网时代,Android应用程序(APK)作为主流应用格式,其安全性和隐私保护问题日益引起关注。"apk反编译神器"是一款专为Android开发者和安全研究者...

    apk反编译必备工具包(macOS平台)

    本篇文章将详细讲解"apk反编译必备工具包(macOS平台)"所包含的工具及其用途,帮助你深入理解APK的内部结构。 首先,我们来关注核心工具之一——Apktool。Apktool是一个开源的工具,主要用于对APK文件进行解包、反...

    apk反编译for macOS.zip

    本教程将详细介绍如何在macOS系统上使用给定的工具——apktool、dex2jar和jd-gui进行APK反编译。 首先,我们来了解这些工具的作用: 1. **apktool**:这是一个开源工具,主要用于解包和重新打包APK文件。它能够...

    apk反编译工具

    在IT行业中,APK反编译工具是一种用于分析和修改Android应用程序(APK)的软件工具。这些工具允许开发者、安全研究人员或者逆向工程师深入了解APK的内部结构,包括查看源代码、资源文件、字符串、权限等,以便进行...

    android反编译工具(dex2jar,apk2java)

    在Android应用开发中,有时需要对已有的APK文件进行逆向工程,以理解其工作...在实际操作中,根据具体需求选择合适的工具,并结合其他辅助工具,如代码混淆工具ProGuard,可以提升软件的安全性和难以被反编译的难度。

    Apk反编译工具--个人定制

    【Apk反编译工具——个人定制】 在Android应用开发中,Apk反编译工具是一种重要的辅助技术,它能够帮助开发者分析、理解和修改现有的APK文件,这对于学习他人代码、安全审计、逆向工程或者个性化定制应用都有很大的...

    apk反编译工具(apktools、androidxzs)

    本文将详细介绍两款常用的APK反编译工具——apktools和androidxzs,以及如何利用它们进行APK文件的处理。 首先,我们来了解apktools。apktools是由IzzySoft开发的一款开源工具,主要用于反编译APK文件,使开发者...

    Android反编译工具——jadx

    而`jadx`就是这样一款强大的工具,它专为Android开发者和安全研究人员设计,用于对APK进行反编译,将Dalvik字节码转换为可读的Java源代码。`jadx`的全称是"Java decompiler for Android",它以高效、准确和易于使用...

    Android_APK反编译全解

    最后,理解APK反编译对于Android开发者来说至关重要,它有助于学习他人的代码实现,调试问题,或者进行安全审计。但同时,也要尊重软件的知识产权,合理合法地使用这些工具和技术。在实际工作中,安全研究人员经常...

    Android APK反编译详解

    ### Android APK反编译详解 在Android开发领域中,反编译APK文件是一种常见的学习方式,可以帮助开发者深入了解优秀应用程序的设计和技术实现。本文将详细介绍三种常用的Android APK反编译技术,帮助开发者更好地...

    最新APK反编译工具(dex2jar-0.0.9.13)

    本文将详细介绍"最新APK反编译工具——dex2jar-0.0.9.13",并阐述其功能、使用方法及在Android应用开发中的应用。 dex2jar是一款开源的Java工具,主要用于将Android应用程序的.dex格式文件转换为Java类的.jar文件。...

    apk反编译工具获得apk资源代码

    APK反编译工具在此过程中扮演了关键角色。本文将详细介绍如何使用给定的三个工具——Apktool、dex2jar和JD-GUI来获取APK资源代码。 首先,我们有`apktool.rar`,这是一个开源工具,由IzzySoft开发,主要用于反编译...

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

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

    APK反编译工具(Android源码学习必备)

    APK反编译工具就扮演了这样的角色,它可以帮助开发者查看、分析甚至是修改APK的应用程序代码,以便于学习、调试或者逆向工程。本篇将详细探讨APK反编译的相关知识点。 首先,我们要了解APK的结构。APK是Android应用...

    apktool反编译工具

    **Android APK反编译工具——Apktool详解** 在Android应用开发中,有时我们需要查看或修改APK文件的内部结构,比如分析应用的工作原理、学习别人的编程技巧,或者进行二次开发。这时,Apktool就成为了一个重要的...

    android APK反编译工具

    在进行APK反编译时,务必遵守合法性和道德规范,只应用于个人学习、研究或合法的安全测试。不应用于侵犯他人知识产权或非法用途,否则可能引起法律纠纷。 总之,`dex2jar`和`JD-GUI`是Android开发者和安全研究人员...

Global site tag (gtag.js) - Google Analytics