安卓应用安全初窥
基础知识
APK文件结构
- Classes.dex
- AndroidManifest.xml
- Resource.arsc
- Meta-inf
- Assets
- 重要的标签及属性
- Minsdklevel
- Targetsdklevel
- android:enable
- android:exports
- android:process
- ……
- ELF
- so文件
- 历史代码
- 第三方库
- ???
常用组件
- Intent
- Action
- Component
- Categoriy
- data
- Activity
- onCreate
- onNewIntent
- Exported
- getTopActivity
- Service
- onStart
- onStartCommand
- Exported
- Android:process
- Receiver
- onReceiver
- abortbroadcast
- Webview
- setSavePassword
- setJavascriptEnabled
- addJavascriptInterface
- Loadurl
- PendingIntent
- Notification
- getActivity
- getService
- getBroadcast
运行时的目录结构
- 私有目录
- /data/data/packagename
- sdcard
代码阅读与理解
分析工具
- 解包
- Baksmali——Dex反汇编
- Arscdecoder——Arsc解码
- Axmlprinter
- Apktool
- 反汇编
- Dex2jar
- jd-gui
- jadx
- jeb
- 反编译
- Eclipse——编写测试代码
- ida——so、动态调试
- Xposed——方法Hook
- adb
- 代码审计
- 分析与调试
- 其他
- Burpsuit
- Akana
- Janus
整体思路
- 经验总结——历史安全问题分析
- 特征提取——准确定位分析入口点
- 代码扫描——借助工具减少分析成本
- 大数据分析——寻找相同问题
方法Hook
签名
生成签名证书
代码实现漏洞
组件暴露相关信息
- enabled
- exported
- Permission
- Action
- 代码实现
蝴蝶效应与程序错误
转载请注明:碎雪的小屋 » 0xb-Android