前往Shuct.Net首页

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

关于反编译的搜索

Android如何防止apk程序被反编译-Java-第七城市 平面 PS AI Flash CDR 网页 Dw HTML/CSS JS 赏析 设计 UI 插画 编程 PHP .Net Java 系统 Win Linux OS X 办公 Word Excel PPT 数据库 My SQL Oracle FZL 美女 男生 图片 QQ 空间 素材 网名 游戏 单机 网络 首页 - 网络编程 - Java Android如何防止apk程序被反编译 2012-03-26 08:16:56--点击数: 作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows/tools/下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows/tools/lib/proguard.cfg的内容: [html] view plaincopyprint? -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 *; } -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 *;} 从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService,并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。)让proguard.cfg起作用的做法很简单,就是在ecliphotoshop/ target=_blank class=infotextkey>pse自动生成的default.properties文件中加上一句&ldquo;proguard.config=proguard.cfg&rdquo;就可以了完整的default.properties文件应该如下: [html] view plaincopyprint? # 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 proguardproguard.config=proguard.cfg # 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得到的代码应该类似于下面的效果,是很难看懂的: 650) this.width=650;" style="border-right-width: 0px; max-width: 600px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="/d/file/p/2012/03/26/0782c2696c39b9c05b3271921f13c7c7.gif" />如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可 的 反 Android Google 开发者 相关文章 电脑静音工作,又听不到12306的来票音乐,纠结啊 !但春节前关于Android原生支持Gif动态图的问题Android视图状态及重绘流程分析,带你一步步深入了解Vie编写第一个Android运行程序C++ - 多重继承(multiple inheritance) 的 名称歧义(nandroid 页面布局时定义控件ID时@id/XX和@+id/xx 的区关于Java的对象equals方法Java多线程系列--“基础篇”03之 Thread中start()和ruandroid开发之如何在两个activity之间传递handler_利android xbmc几个编译错误的处理 本站导航 平面设计 Photoshop Illustrator Fireworks Coreldraw Flash 3DS MAX AutoCAD Maya 美图秀秀 网页设计 Dreamweaver HTML/CSS JavaScript FrontPage Ajax 设计赏析 平面设计作品 网页设计欣赏 三维动画赏析 标志设计欣赏 插画设计作品 室内设计欣赏 VI设计欣赏 UI设计欣赏 摄影艺术 设计理念 网络编程 ASP教程 PHP教程 Java ASP.NET SilverLight Delphi C语言 C++ Python Perl Ruby WPF Android Windows Phone IOS 操作系统 Windows Linux Mac OS X 办公软件 Word教程 Excel教程 PowerPoint教程 WPS Office 数据库 MySQL SQL Server Oracle 非主流 非主流美女 非主流男生 非主流图片 非主流服饰 非主流饰品 非主流闪图 QQ专区 QQ空间 QQ分组 QQ素材 QQ日志 QQ网名 QQ签名 游戏频道 单机游戏 网络游戏 最新教程 最新推荐 周点击榜 关于使用Textarea的注意事项 使用纯 CSS 实现响应式的图片显示效果 【攻防实战】SQL注入演练! javascript面向对象的程序设计之Object.getOw javascript创建对象之工厂模式(一) Json.NET XPath使用示例 css控制文本实现越界省略号以及自动换行 纯css样式实现3角型 防止按钮在短时间内被多次点击 Lock,LockFree,MemoryBarrier,ConcurrentColl dll文件32位64位检测工具以及Windows文件夹Sy chart控件怎么使x轴标签全部显示出来 iOS开发- UICollectionView详解+实例 Java异常的优势与缺陷,及其处理原则 Java类加载和类反射回顾 C# 实现将 PDF 转文本的功能 C++预处理详解 整合Solr到Tomcat服务器,并配置IK分词 MVC验证10-到底用哪种方式实现客户端服务端双 Photoshop打造甜美的酒红色外景美女图片 Photoshop合成飘逸梦幻的人像作品 Photoshop给冬季图片增加影视中的雪花效果 Photoshop给草地上的美女加上甜美的深秋黄褐 Photoshop给果子美女加上甜美的淡调青红色 Photoshop制作漂亮的妇女节红色飘带字 Photoshop打造经典大气的欧美褐色婚片 Photoshop快速给树木边的美女加上甜美的暖褐 Photoshop制作空间感非常强的放射光束 Photoshop调出美女私房照淡雅日系效果 广告业务QQ:383373320 技术服务QQ:57037 QQ群一:9177885 信息产业部备案号:浙ICP备09062716号-2 CopyRight 2003-2011 七城工作室 Inc. All Rights Reserved 声明:本站所提供资料均为网络搜集,如有侵犯版权,请联系我们,本站将立即修改。 -