Android(Java):代码混淆
来源:互联网 发布:鸡蛋进口数据2015 编辑:程序博客网 时间:2024/05/17 23:33
反编译:
1、得到 classes.dex文件;直接用你机器上的 解压软件 打开 .apk 文件
解压出 classes.dex 文件,(这个就是 .jar 的前生--- 其实应该说 后世)
2、还原.jar文件;这一步需要用到一个工具 dex2jar (谷歌的代码库里有 http://code.google.com/p/dex2jar/)
看名字也不难知道他是干嘛的了吧?(没错,就是 把 dex 还原 成 jar包 )
下载完了,解压,然后把第一步的 产物(即那个classes.dex文件)放到 dex2jar的解压目录里
(解压目录里 有 dex2jar.bat 文件,检查一下,没有的话 说明目录不对、再 找找)
cmd 命令行 ,目录切换到 dex2jar的目录下(linux 系统的话 执行那个 .sh文件)
“ dex2jar.bat classes.dex”
看到命令行 的 “Done” 之后, dex2jar 文件夹里 就会有“classes.dex.dex2jar.jar” 文件了,
这个就是 传说中的 jar包了
代码混淆:
使用SDK2.3后,项目的根目录会有proguard的配置文件,如果没有新建此文件,配置如下内容:
-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>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
然后在project.properties文件里添加一行代码proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
最后右键点击项目名 - Android-tools - Export UnSign Application xxx,导出的apk就是混淆过的.如果想打签名,只要选择Export Sign Application xxx就可以了.
关于jar包混淆,只混淆用到的类,当然也可以让它不混淆。
- Android(Java):代码混淆
- Android java代码混淆
- Android 混淆 以及 java代码方式实现混淆配置
- Android ProGuard Java代码混淆器
- Android 代码混淆,混淆打包
- Android 代码混淆 webview混淆
- [Android]混淆Android代码
- [Android]混淆Android代码
- Android代码混淆------apk文件代码混淆
- android 代码混淆proguard
- Android项目代码混淆
- android 代码混淆总结
- android 代码混淆
- android代码混淆
- 混淆Android代码
- Android代码混淆 反编译
- android 代码混淆
- Android 代码混淆
- struct s3c24xx_uart_info
- 黑马程序员——TreeSet
- YII定义常用的全局函数
- 密码控件安全技术浅析及攻击实例
- Git查看、删除远程分支和tag
- Android(Java):代码混淆
- linux环境变量(转)
- Linux平台下基于C++语言使用gSOAP开发Web Service服务端和客户端程序
- 3.4.6 PassReference
- android Camera framework层解析
- PHP natsort 用“自然排序”算法对数组排序
- 【面向代码】学习 Deep Learning(一)Neural Network
- Postback 之后保持浏览器滚动条的位置
- 打印数字图形