導航:首頁 > 編程語言 > eclipse代碼混淆

eclipse代碼混淆

發布時間:2023-08-25 17:54:33

『壹』 安卓編程 如何進行代碼混淆

安卓在eclipse中的ADT已經改變原有的模式了,你在項目文件中找到這內兩個文件,一般在項目根容目錄里。

補充:編程就是讓計算機為解決某個問題而使用某種程序設計語言編寫程序代碼,並最終得到相應結果的過程。

為了使計算機能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算機之間交流的過程就是編程。

編程:設計具備邏輯流動作用的一種"可控體系"【注:編程不一定是針對計算機程序而言的,針對具備邏輯計算力的體系,都可以算編程】

例子:①比如編寫一段代碼程序②編寫一個控制設備體系

『貳』 如何防止代碼被反編譯

由於apk是Android虛擬機載入的,它有一定的規范,加密apk後Dalvik無法識別apk了。完全避免是不可能的,總有人能夠破解你的代碼。但是有幾種方式來提高被反編譯取代碼的難度。
1 關鍵代碼使用jni調用本地代碼,用c或者c++編寫,因此相對比較難於反編譯

2 混淆java代碼。混淆是不改變代碼邏輯的情況下,增加無用代碼,或者重命名,使反編譯後的源代碼難於看懂。 網上開源的java代碼混淆工具較多,一般是用ant的方式來編譯的。

1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示:
target=android-8
proguard.config=proguard.cfg
Eclipse會通過此配置在工程目錄生成proguard.cfg文件

2 . 生成keystore (如已有可直接利用)
按照下面的命令行 在D:\Program Files\Java\jdk1.6.0_07\bin>目錄下,輸入keytool -genkey -alias android.keystore -keyalg RSA -validity 100000 -keystore android.keystore
參數意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵 都算密碼
命令執行後會在D:\Program Files\Java\jdk1.6.0_07\bin>目錄下生成 android.keystore文件。

3. 在Eclipce的操作
File -> Export -> Export Android Application -> Select project -> Using the existing keystore , and input password -> select the destination APK file

經過混淆後的源代碼,原先的類名和方法名會被類似a,b,c。。。的字元所替換,混淆的原理其實也就是類名和方法名的映射。
但4大組件並沒有混淆(所有在清單文件定義的組件不能被混淆),因為系統需要通過清單文件來查找和運行應用程序。

proguard.cfg 文件代碼解讀
-optimizationpasses 5 ->設置混淆的壓縮比率 0 ~ 7
-dontusemixedcaseclassnames -> Aa aA
- ->如果應用程序引入的有jar包,並且想混淆jar包裡面的class
-dontpreverify
-verbose ->混淆後生產映射文件 map 類名->轉化後類名的映射

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* ->混淆採用的演算法.

-keep public class * extends android.app.Activity ->所有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>; -> 所有native的方法不能去混淆.
}

-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 { -> aidl文件不能去混淆.
public static final android.os.Parcelable$Creator *;
}

『叄』 eclipse混淆打包發生錯誤

這是帆雀因為你混淆的代碼沒有一個入口,也就是說,這個程序或者jar包被全部混淆了,外部沒有任何一個地方可以正常調用到它,換句話說就是「你混淆出來的東西沒法用」。假如你混淆的是apk,參考
http://stackoverflow.com/questions/14869315/the-output-jar-is-empty-did-you-specify-the-proper-keep-options

假如你混淆的族轎棗是jar包:
依賴其它的庫使用類似下述語句
-libraryjars D:/developApp/androidsource/xxx.jar
混淆的java代碼里有標簽,加上
-keepattributes *Annotation*

最後就是把對外兆拆介面給keep住

『肆』 我用eclipse開發安卓,其中用到了幾個開源項目,出於代碼保護,我現在就想只混淆我當前安卓項目的源代碼

你最好還是使用 非GPL協議的。
否則,你java開發的很容易被人家發現的。
除非是 小項目,小眾效應,沒人關注,否則有 起訴風險。

『伍』 allatori 混淆器怎麼放入eclipse

Allatori屬於第二代混淆器,具有全方位保護你的知識產權的能力。Allatori具有以下幾種保護方式:命名混淆,流混淆,調試信息混淆,字元串編碼,以及水印技術。對於教育和非商業項目來說這個混淆器是免費的。下載地址:
http://www.oschina.net/p/allatori

Allaroti包tutorial目錄下自帶混淆例子,仔細研究一下還是挺簡單的。主要的就是你需要混淆的war文件和config.xml配置文件
config.xml
<config>
<jars>
<jar in="test.jar" out="obf-test.jar"/> //in="需要混淆的文件" ,out="混淆後的文件"
<jar in="mousegestures-1.2.jar" out="obf-mousegestures-1.2.jar"/>
</jars>
<keep-names>
<class template="class *.TestFrame"/> //不需要混淆的類,屬性,方法的配置參考文檔,裡面很詳細。

『陸』 什麼是代碼混淆andriod和android-studio工程如何啟用代碼混淆功能

代碼混淆有兩種重要功能。其一,混淆代碼。其二,優化代碼。

進行代碼混淆的程序被稱為代碼混淆器(混淆工具)。進行代碼混淆的意義主要在於對代碼進行一定程度的加密。
在android 2.3之後,sdk中就已經集成了混淆器proguard(目錄在sdk\tools\proguard),所以我們可以很方便的直接在工程中開啟代碼混淆。

eclipse android工程開啟混淆功能,我們需要手動在項目文件.properties(我的是project.properties文件)中添加下面的代碼
# 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這一行解注釋就好了。這樣代碼混淆功能就開啟了,在打簽名包時,項目會自動進行代碼混淆。

『柒』 eclipse自動排版把代碼弄亂了怎麼辦

如果是這種情況, 可以使用組合鍵ctrl+z 回退功能,可以回到上一步甚至是上幾步。很方便的。以後可以去試試。

如果代碼在eclipse裡面保存過, 只要是沒有關閉代碼,都可以按組合鍵ctrl+ z來回退的。
如果是保存代碼後關閉了。那就沒辦法了,只能手動進行排版了。

閱讀全文

與eclipse代碼混淆相關的資料

熱點內容
vc修改文件名 瀏覽:149
linux65從域 瀏覽:321
用什麼東西壓縮文件 瀏覽:406
怎麼刪除ipad隱藏的APP 瀏覽:981
編程如何佔用大量內存 瀏覽:116
多個excel表格文件如何組合 瀏覽:918
ubuntu內核升級命令 瀏覽:679
pgp文件夾 瀏覽:894
一鍵還原的文件是什麼格式 瀏覽:581
女漢子微信名霸氣十足 瀏覽:65
win10手機藍屏修復 瀏覽:419
windows2008激活工具 瀏覽:259
g71的編程應注意什麼 瀏覽:572
文件路徑不符合是什麼意思 瀏覽:543
qq如何換綁微信綁定 瀏覽:67
文件包下載的安裝包在哪裡 瀏覽:811
90版本升級不送 瀏覽:186
工具箱英文 瀏覽:382
南翔嘉定編程課哪裡好 瀏覽:853
win10改變文件格式 瀏覽:475

友情鏈接