1. 代碼混淆技術,native代碼加upx殼,
2. 對抗動態,androidManifext.xml文件的application標籤中加入android:debuggable=”false”,再android.os.Debug.isDebuggerConnected()
3. 檢測模擬器 如在其中則中止
4. 簽名保護:軟件中檢查軟件的簽名的hashcode,破解後的肯定會變
5. 檢驗保護:運行時檢查dex文件的hash值(可md5計算得到),並保存在網上,運行時聯網檢查。
永久root後,root工具一般會在/system/app目錄寫入root權限管理軟件(superuser.apk),及向/system/bin || /system/xbin下寫入su程序。
串謀攻擊,activity劫持
Service、組件指定Intent-filter後,默認是可以被外部程序訪問的。
組件聲明時可以通過指定android:exported=”false”,來設置組件不能被外部程序調用,簽名相同,用戶ID相同的程序共享同一個進程空間,沒有組件訪問限制。
如要供外部使用可以用
<activity android:name=”xxx”
android:permission”xyz”>
外部如要使用則加入:
<user-permissionandroid:name=”xyz”/>
Activity劫持
組件聲明時android:excludeFromRecents=”true”時則不會出來在後臺程序列表。
SendBroadcase(intent) 或 sendOrderedBroadcase() 全系統廣播,如使用intent.setclass則被被本實例接收。