SlideShare a Scribd company logo
1 of 26
Download to read offline
Proguard
TakumaLee
前⾔言
為了防⽌止⼼心⾎血被偷⾛走
為了守護我們的 code
貫徹錢與⼯工作的執著
悲慘又催淚的賣肝⽣生活
……
回正題
根據不知何來的數據顯⽰示
❖ No proguard
❖ 有⼼心⼈人取得程式碼只要幾秒幾分鐘
❖ After proguard
❖ 有⼼心⼈人取得程式碼也只要幾秒幾分鐘
❖ 但他們看不懂這該死的程式碼到底在寫什麼
❖ 不過謠傳聽說強⼒力⼈人⼠士依然能破解,只是會花上數個⼩小時甚至幾天
app.gradle
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
demo {
signingConfig signingConfigs.debug
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
proguard-rules.pro
# OrmLite uses reflection
-keep class com.j256.**
-keepclassmembers class com.j256.** { *; }
-keep enum com.j256.**
-keepclassmembers enum com.j256.** { *; }
-keep interface com.j256.**
-keepclassmembers interface com.j256.** { *; }
-keep class com.nostra13.universalimageloader.**{ *; }
proguard-rules.pro
# FACEBOOK uses
-keep class com.facebook.**
-keepclassmembers class com.facebook.** { *; }
# Parse uses
-keep class com.parse.**
-keepclassmembers class com.parse.** { *; }
proguard-rules.pro
# Crashlytics Detector
-keepattributes SourceFile,LineNumberTable
proguard-rules.pro
# ANDROID
-keep class android.support.v7.widget.SearchView
{ *; }
app.gradle
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
demo {
signingConfig signingConfigs.debug
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Android Studio
測試
Gradle
app.gradle
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
demo {
signingConfig signingConfigs.debug
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Demo
有沒有其他⽅方法︖?
有,我們稱之為
「⼿手動 proguard 」
缺點
你要⼩小⼼心你的⽣生命安全
後⾯面接⼿手你的 code 的⼈人可能會
在路上蓋你布袋
延伸閱讀
APK 加密⽅方法共四篇(內有殘體中⽂文不喜歡者請略過)
1. android apk 防⽌止反編譯技術(1)-加殼技術
2. android apk 防⽌止反編譯技術(2)-運⾏行時修改Dalvik指令
3. android apk 防⽌止反編譯技術(3)-加密
4. android apk 防⽌止反編譯技術(4)-對抗JD-GUI
End

More Related Content

Similar to Proguard by android studio

加密方案设计原则
加密方案设计原则加密方案设计原则
加密方案设计原则nncbqqcom
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐zhangsuoyong
 
Debugging - 前端工程開發實務訓練
 Debugging - 前端工程開發實務訓練 Debugging - 前端工程開發實務訓練
Debugging - 前端工程開發實務訓練Joseph Chiang
 
Introduction of Reverse Engineering
Introduction of Reverse EngineeringIntroduction of Reverse Engineering
Introduction of Reverse EngineeringYC Ling
 
HTML+COIMOTION 開發跨平台 app
HTML+COIMOTION 開發跨平台 appHTML+COIMOTION 開發跨平台 app
HTML+COIMOTION 開發跨平台 appBen Lue
 
恶意网页分析实战
恶意网页分析实战恶意网页分析实战
恶意网页分析实战Huang Toby
 
生成 Android 签名文件
生成 Android 签名文件  生成 Android 签名文件
生成 Android 签名文件 YUCHENG HU
 
生成 Android 签名文件
生成 Android 签名文件 生成 Android 签名文件
生成 Android 签名文件 YUCHENG HU
 
3.android 应用程序通用自动脱壳方法研究
3.android 应用程序通用自动脱壳方法研究3.android 应用程序通用自动脱壳方法研究
3.android 应用程序通用自动脱壳方法研究Hsiao Tim
 
Mobile app security
Mobile app securityMobile app security
Mobile app securitydrewz lin
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)FLASH开发者交流会
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Kris Mok
 
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Enginejay li
 

Similar to Proguard by android studio (13)

加密方案设计原则
加密方案设计原则加密方案设计原则
加密方案设计原则
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
Debugging - 前端工程開發實務訓練
 Debugging - 前端工程開發實務訓練 Debugging - 前端工程開發實務訓練
Debugging - 前端工程開發實務訓練
 
Introduction of Reverse Engineering
Introduction of Reverse EngineeringIntroduction of Reverse Engineering
Introduction of Reverse Engineering
 
HTML+COIMOTION 開發跨平台 app
HTML+COIMOTION 開發跨平台 appHTML+COIMOTION 開發跨平台 app
HTML+COIMOTION 開發跨平台 app
 
恶意网页分析实战
恶意网页分析实战恶意网页分析实战
恶意网页分析实战
 
生成 Android 签名文件
生成 Android 签名文件  生成 Android 签名文件
生成 Android 签名文件
 
生成 Android 签名文件
生成 Android 签名文件 生成 Android 签名文件
生成 Android 签名文件
 
3.android 应用程序通用自动脱壳方法研究
3.android 应用程序通用自动脱壳方法研究3.android 应用程序通用自动脱壳方法研究
3.android 应用程序通用自动脱壳方法研究
 
Mobile app security
Mobile app securityMobile app security
Mobile app security
 
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
 
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Engine
 

Proguard by android studio