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则被被本实例接收。