導航:首頁 > 操作系統 > android混淆代碼還原

android混淆代碼還原

發布時間:2024-12-03 15:53:48

android 混淆 什麼意思

Android代碼混淆,是為了你的apk被他人反編譯之後拿到源碼,如果你混淆了,那反編譯後的apk所有的java類都被改成了a.java/c.java之類的文件名,類裡面的屬性也變成abc之類的了,想拿到你的源碼就不可能了,直接在gradle(app)文件的android節點下加上下邊代碼。

buildTypes{
release{
minifyEnabledfalse
('proguard-android.txt'),'proguard-rules.pro'
}
}

❷ Android之如何混淆代碼和相關配置

項目發布之前混淆是必不可少的工作,混淆可以增加別人反編譯閱讀代碼的難度,還可以縮小APK包。
使用步驟:
1、修改project.properties文件:
Java代碼 收藏代碼
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

去掉proguard.config一行前面的#注釋;

2、配置proguard-project.txt文件:
這個是主配置文件,裡面配置哪些需要混淆,哪些不需要混淆的選項;
提供給外部的類、方法、變數等名字不能混淆;
在AndroidManifest中配置的類(Activity、Service等的子類及Framework類默認不會進行混淆)
不混淆Parcelable的子類,防止android.os.BadParcelableException
Jni中調用的類
反射用到的類
項目中的實體類

3、導出項目:
export簽名項目。

4、查看是否混淆成功:
用反編譯工具反編譯並對比未混淆的代碼;

5、運行ProGuard及其生成的文件介紹
在以release模式下打包apk時會自動運行ProGuard,這里的release模式指的是通過ant release命令或eclipse project->android tools->export signed(unsigned) application package生成apk。在debug模式下為了更快調試並不會調用proguard。

如果是ant命令打包apk,proguard信息文件會保存於<project_root>/bin/proguard文件夾內;如果用eclipse export命令打包,會在<project_root>/proguard文件夾內。其中包含以下文件:
mapping.txt表示混淆前後代碼的對照表,這個文件非常重要。如果你的代碼混淆後會產生bug的話,log提示中是混淆後的代碼,希望定位到源代碼的話就可以根據mapping.txt反推。
mp.txt描述apk內所有class文件的內部結構
seeds.txt列出了沒有被混淆的類和成員
usage.txt列出了源代碼中被刪除在apk中不存在的代碼

目前市面上有很多第三方應用加固的平台, 如果新應用發布前需要掃描或者加固的話,可以先試試免費的,例如騰訊御安全,建議自己先去加固測試下。

❸ android如何將混淆代碼還原

當混淆後的代碼輸出一個堆棧信息時,方法名是不可識別的,這使得調試變得很困難,甚至是不可能的。幸運的是,當ProGuard運行時,它都會輸出一個<project_root>/bin/proguard/mapping.txt文件,而這個文件中包含了原始的類,方法和欄位名被映射成的混淆名字。

retrace.bat腳本(Window)或retrace.sh腳本(Linux,Mac OS X)可以將一個被混淆過的堆棧跟蹤信息還原成一個可讀的信息。它位於<sdk_root>/tools/proguard文件夾中。執行retrace工具的語法如下:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]

例如:
retrace.bat -verbose mapping.txt obfuscated_trace.txt
如果你沒有指定<stacktrace_file>,retrace工具會從標准輸入讀取。

閱讀全文

與android混淆代碼還原相關的資料

熱點內容
x722驅動無法編譯 瀏覽:400
解壓時顯示出錯 瀏覽:838
阿里雲配置mysql資料庫伺服器地址 瀏覽:911
關於安卓系統老化怎麼解決 瀏覽:812
php撮合交易 瀏覽:1001
決戰服務端源碼編譯 瀏覽:994
騰訊雲伺服器如何保持開啟 瀏覽:372
程序員抽煙怎麼樣 瀏覽:876
模擬器怎麼加入伺服器 瀏覽:295
yt88加密狗初始化 瀏覽:133
期貨5分鍾app哪裡有 瀏覽:509
什麼叫編譯編輯 瀏覽:462
未加密的wifi是什麼渠道 瀏覽:874
手機的文件夾怎麼卸載 瀏覽:244
php的配置文件在哪 瀏覽:119
linux安裝驅動怎麼編譯 瀏覽:259
男生解壓舞教程 瀏覽:236
壓縮彈簧尺寸怎麼寫 瀏覽:402
證券app哪裡看公司業績預測 瀏覽:426
快速掌握python3語法 瀏覽:158