前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

如何防止Android应用被反编译_Linux编程_Linux公社-Linux系统门户网站 你好,游客 登录 注册 搜索 首页Linux新闻Linux教程数据库技术Linux编程服务器应用Linux安全Linux下载Linux认证Linux主题Linux壁纸Linux软件数码手机电脑 首页 → Linux编程 背景: 阅读新闻 如何防止Android应用被反编译 [日期:2011-08-13] 来源:Linux社区 作者:Linux [字体:大 中 小] 作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows/tools/下面多了一个proguard文件夹,proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。 下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看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 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 *; } 从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService,并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。) 让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-9proguard.config=proguard.cfg 大功告成,正常的编译签名后就可以防止代码被反编译了。反编译经过代码混淆的apk得到的代码应该类似于下面的效果,是很难看懂的: 如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可。 0 顶一下 Android学习之多点触摸并不神秘 Android APK反编译得到Java源代码和资源文件 相关资讯 Android教程 Android 4.1+通过USB 连接Ubuntu进 (02月07日) Android下使用最新FaceBook SDK 3. (02月06日) Android JNI 自定义对象为参数和返 (11/26/2012 19:04:48) Android 获取手机应用信息 (02月06日) Android设置Activity的显示位置 (02月01日) Android中实现下拉刷新 (11/19/2012 15:26:23) 图片资讯 Android 4.1+通过USB Android下使用最新Android中实现下拉刷巧妙设置Android来方Windows下五步快速安Ubuntu下进行AndroidAndroid 4: 动态切换Android 终端上使用 本文评论   查看全部评论 (0) 表情: 姓名: 匿名 字数    同意评论声明    发表 评论声明 尊重网上道德,遵守中华人民共和国的各项有关法律法规 承担一切因您的行为而直接或间接导致的民事或刑事法律责任 本站管理人员有权保留或删除其管辖留言中的任意内容 本站有权在网站内转载或引用您的评论 参与本评论即表明您已经阅读并接受上述条款 最新资讯 使用Nginx sticky模块实现基于cookie的负载均衡 18 岁生日快乐,Windows 95! Git 1.8.4 发布,分布式版本控制系统 libj 0.8.1 发布,Java/JavaScript API 的 C++ libnode 0.3.2 发布,C++ 语言版的 Node.js mtCellEdit 2.2 发布,电子表格程序 MLPACK 1.0.6 发布,C++ 的机器学习库 AutoLaTeX 22.0 发布,LaTeX 项目管理工具 YajHFC 0.5.4 发布,Java 传真客户端 Pardus Linux 2.0 RC2 “Community” 发布 本周热门 在Windows平台下使用安装GCC(图) Android 应用开发笔记 - 拖动效果(Gallery) Ubuntu 12.04编译android-4.0.1_r1错误总结 Android 分页Title栏滑块效果--ActionBar(模拟 Bash 入门 学习笔记 Android 3d 球形建模 Android UI---自定义形状shape Android开发入门教程:Splash的实现 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区 如何编译OpenCV-2.3.x/OpenCV-2.4.x使其支持GPU Linux公社简介 - 广告服务 - 网站地图 - 帮助信息 - 联系我们本站(LinuxIDC)所刊载文章不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。 Copyright &copy; 2006-2011 Linux公社 All rights reserved 浙ICP备06018118号