- 浏览: 616842 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (314)
- 生活 (2)
- c# (37)
- 技术 (3)
- 400电话 (0)
- 400常见问题 (0)
- 400资费 (0)
- html (7)
- css (0)
- 数据库 (7)
- javascript (16)
- php (33)
- asp.net mvc2 (10)
- mysql (9)
- C# 3.0 LinQ (10)
- vs2005或vs2008 (4)
- flash and as3 (7)
- fms (1)
- dedeCMS (11)
- java (33)
- j2me (1)
- swing (1)
- c++ (1)
- jquery easyui (3)
- jquery (5)
- android (29)
- MongoDB (9)
- VtigerCRM (1)
- test (0)
- linux (30)
- nutch (2)
- SqlServer数据库 (2)
- 数据检索 (2)
- java抓取 (11)
- 乐天 (1)
- 淘宝 (1)
- Silverlight4.0 (6)
- sphinx实时索引 (5)
- ecshop (9)
- codeigniter(CI) (3)
- axure6 (1)
- 京东店铺装修教程 (2)
- xpath (1)
- joomla (2)
- bpm (1)
- Bootstrap (2)
- knockout (4)
- ecstore (4)
- css3 (1)
- 微信 (2)
- dede (0)
- soa_edi (1)
- odoo (0)
- web (1)
最新评论
-
骑着蜗牛超F1:
在ie6下报了个stack overflow at line ...
兼容ie6和ie7 的16进制码流在html中显示为图片代码(base64) -
冰之海洋:
好像少了一句代码吧? FloatingFunc.show(th ...
android 一直在最前面的浮动窗口效果 -
yanzhoupuzhang:
连接有问题!
iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000) -
whatable:
唉,楼主你都没有搞清楚重量级和轻量级。。。。既然引用了SWT, ...
java swing 内置浏览器打开网页显示flash图表-swt Browser应用 -
yy_owen:
我晕啊,你链接的什么内容额,我要的iis,你链接个视频什么意思 ...
iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000)
概述
在2.3版本的sdk中可以看到在ANDROID_SDK _PATH/tools/下面多了一个proguard文件夹,google把proguard技术放在了android sdk里面,现在已经可以通过正常的编译方式实现代码混淆了。
在2.3版本以后,无论开发用的是哪一个版本的SDK,新建一个工程里面都会有default.properties和proguard.cfg两个文件。(http://www.my400800.cn )
默认的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.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中的例子及注释。
使用代码混淆
依据官方文档所说:
To enable ProGuard so that it runs as part of an Ant or Eclipse build, set the proguard.config property in the <project_root>/default.properties file. The path can be an absolute path or a path relative to the project's root.
修改default.properties文件,加上一句:
proguard.config=proguard.cfg
加完后如下面的样子:
proguard.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-9 proguard.config=proguard.cfg
然后正常的编译签名即可生成一个经过代码混淆的apk。
如果编译出现警告可以在【proguard.cfg】文件中添加【-ignorewarnings】忽略警告项目进行混淆处理。
Eclipse+ADT进行Android应用程序的代码混淆和签名 图解
启动代码混淆功能
在较新版本的Android tools和ADT,项目工程里面是带有proguard.cfg的代码混淆配置文件,但默认是没有启动这个配置的,需要手动地在default.properties里面添加指定这个配置文件:# Project target.
target=android-3
proguard.config=proguard.cfg
然后按F5刷新当前项目工程,这时候Eclipse检测了文件的变动而重新编译!
生成签名发布apk
1.Eclipse工程中右键工程,弹出选项中选择 android工具-生成签名应用包:
2.选择需要打包的android项目工程(注:这里会自动选择当前的Project的):
3.如果已有私钥文件,选择私钥文件 输入密码,如果没有私钥文件见 第6和7步创建私钥文件:
4.输入私钥别名和密码:
5.选择APK存储的位置,并完成设置 开始生成:
6.没有私钥文件的情况,创建私钥文件(注:这里私钥文件的Location位置最好自己选择一个新位置,便于牢记,而且最好把这个私钥文件备份到其他地方去以免丢失,因为应用程序的更新需要同一私钥文件):
7.输入私钥文件所需信息,并创建(注:这里的密码是用于Key的别名的,和上面的KeyStore文件的不同,这点可以看步骤3和4。另外下面的名字,开发者资料等是不需要全部填写的,dialog会有提示的):
这时候生成的apk,我发现是比debug版本的要小!如果你发现没有变小的话,请确认项目工程是重新编译的!但代码混淆的效果一般般,基本上还是可以看到原来的语句!
如果运行上面的代码出现错误请下载 proguard4.6.rar解压后把目录下面的 lib 目录中的文件复制到 【androidsdk的Developer目录下的lib目录下面就可以了】
- proguard4.6.zip (2.4 MB)
- 下载次数: 902
发表评论
-
andorid eclipse断点调试失灵
2013-05-09 15:06 1308在调试android程序的时候发现设置的断点怎么也进不去 ... -
android利用ZXing进行条码扫描二维码扫描源码简化
2012-01-04 09:59 1938导入项目 @Override public v ... -
Android使用ZXing类库进行条码/二维码识别
2011-12-26 11:24 1809Android使用ZXing类库进行条码/二维码识别(转) ... -
如何在开发时可以让Android应用程序支持安装到SD卡
2011-12-16 08:51 953Android系统在2.1版本之前,应用程序是只能安装到机身内 ... -
用TextView显示带图片的效果及为文本添加链接
2011-12-06 17:13 1800为了实现在TextView中显示图片,有时对图片的宽度与高度有 ... -
android listview 滚动时异步加载图片的问题
2011-12-05 15:05 2338LoadImage.java package com ... -
Android 程序的安装、卸载和更新
2011-11-22 11:20 1177安装程序:软件从无到有。 卸载程序:软件从有到无。 ... -
atest201111
2011-11-21 17:04 0eeeee SQLite Developer ... -
android-XXX9.png文件拉伸不失真大家注意了
2011-11-17 14:24 1739什么是9.png: 可能做过任务栏美化 ... -
Android中String资源文件的String.format方法(java)
2011-10-25 16:57 1230很多时候我们感性Google ... -
android 一直在最前面的浮动窗口效果
2011-10-21 15:51 15865今天发现一些软件可以 ... -
Android 对于ListView拖动时变黑问题解决方法
2011-10-21 13:08 1500最近用ListView显示一些String数据 ... -
Android SeekBarPreference浅聊
2011-10-19 15:37 1520由于网上有很多人问到SeekBarPreferenc ... -
在Android中创建启动界面
2011-10-14 09:06 7861、制作一张启动图片splash.png,放置在res ... -
Android 菜单(OptionMenu)大全 建立你自己的菜单
2011-10-13 09:11 686菜单是用户界面中最常见的元素之一,使用非常频繁,在Andro ... -
Android中使用Gson解析JSON数据
2011-10-12 13:33 1548在Android中可以使用Gson解析JSON数据 ... -
android解析json小例子
2011-10-12 12:53 1087今天学习了一下解析json的知识,把我学习的的一个小例子拿出来 ... -
解决android http请求带中文参数会乱码(url编码)
2011-09-29 17:23 3246今天在用android 的 URL url = new U ... -
android 选择本地图片并预览
2011-09-29 14:40 1209adv_sdcard_image_upload.xml ... -
关于 apk文件反编译的方法(dex2jar和JD-GUI)
2011-09-19 11:51 1591觉着这2个工具配合学习android太靠谱了,所以放上来给大家 ...
相关推荐
Android如何防止apk程序被反编译 作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。 Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在...
Android如何防止apk程序被反编译 亲自测试 完美混淆
Obfuscapk是一个模块化的Python工具,用于在不需要反汇编源代码的情况下混淆Android应用程序,因为在对反编译的smali代码,资源和清单应用了一些混淆技术之后, 用于反编译原始apk文件并构建新的应用程序。 混淆后...
同一时候混淆器仅在公布模式下进行构建应用程序的时候才会执行起来,所以在调试模式下构建程序时,你不必处理混淆代码。让混淆器执行起来是可选择的,可是推荐选上。 1. 改动project.properties # This file i
code)是指将程序代码转换成一种功能上等价,但是难于阅读和理解的形式。 Android 的 apk 就默认使用了代码混淆,使得反编译 APK 变得比较困难。 争议 观点一前端代码公开,没有秘密,本身代码就没有保护的意义。 ...
Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一proguard文件夹 proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难...
用来开发Android插件APK,并通过动态加载的方式在宿主程序中运行。 若插件APK是完全独立的APK,那么插件apk也可独立安装运行。 若插件APK不是完全独立的apk,比如和插件宿主程序共用一些依赖库,那么插件apk...
Android 有丰富的功能,因此很容易与桌面操作系统混淆。Android 是一个分层的环境,构建在 Linux 内核的基础上,它包括丰富的功能。UI 子系统包括: •窗口 •视图 •用于显示一些常见组件(例如编辑框、列表和下拉...
借鉴成功的商业程序代码,是新手快速提高编程水平的途径。为此,笔者制作了 android反编译工具,能将混淆器编译的apk文件,还原java文件,资源文件的android开发 项目。可以直接编译目的apk文件,运行效果与原apk...
Android Studio如何混淆 为什么要混淆 了解安卓程序编译的会知道 其实我们的apk并不是很安全,从apk从可以解包出,步骤: 将apk文件改成zip结尾 然后解压zip 然后就会发现里面有一个classes.dex dex2jar 这个工具将...
在混淆编译之前,我的程序可以正常运行,混淆编译时,报告如下错误: Error:Execution failed for task ‘:gviews:transformClassesAndResourcesWithProguardForRelease’. Java.io.IOException: The same input ...
系统通过对apk反编译,随机包名,随机签名,混淆代码等方式,回编译生成新的apk安装包 通过系统智能自动处理,间隔5分钟(可以自定义时间)生成一个新包,通过对接对象云储存系统 分发给不同的用户下载使用,确保...
有助于查找静态字符串混淆并使用适用于Android的frida对它们进行动态模糊化注解:假设已正确配置了Android的frida,并且已连接设备/仿真器 print_packages.py 有助于在应用程序组之间查找通用软件包(SDK)。 只需...
一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件 下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下, 打开命令行界面(运行-CMD...
JEB是一个功能强大的为安全专业人士设计的Android应用程序的反编译。反向工程或审计APK文件,并减少许多工程师的分析时间。JEB的独特功能是,其Dalvik字节码反编译为Java源代码的能力。无需DEX-JAR转换工具。特别是...
Android 官方 Ingress 应用程序的修改。 它通过修补 apk 文件来工作,项目源不包含 NianticLabs 的任何专有位。 不幸的是,从源代码构建它并不容易,因为它是作为一组帮助脚本开发的,并且高度依赖于环境和许多其他...
混淆android资源。 它包含所有资源类型(例如drawable,layout,string ...)。 它可以防止Apktool逆转您的apk。 缩小apk大小。 它可以明显减少resources.arsc和程序包大小。 用7zip重新7zip 。 它支持7zip重新...
对常用动态调试Apk的方法进行检测与防范,防止通过IDA Pro、gdb、IntelliJ IDEA等工具动态调试受保护Apk, 增加程序运行安全性。 对抗二次打包 在受保护Apk运行过程中,通过对Apk完整性校验,自动崩溃被二次打包的...
混淆器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆。结果是一个比較小的.apk文件,该文件比較难进行逆向project。因此,当你的应用程序对安全敏感(要求高),比如当你...