安卓恶意代码分析
来源:互联网 发布:深圳java外包公司 编辑:程序博客网 时间:2024/04/27 19:15
看到了一篇讲安卓恶意代码分析的PPT
搬运到这里来
调试
- 动态调试Android SDK程序
Dalvik虚拟机实现了JDWP(Java Debug Wire Protocol,Java调试有线协议),可以直接使用支持JDWP协议的调试器来调试Android程序 - DDMS与Eclipse ADT插件
这里提醒一下,谷歌官方已经停止对Eclipse的友好了,转而推荐使用Android Studio - Dalvik虚拟机中中所有对调试支持的实现代码位于Android系统源码的dalvik/vm/jdwp目录下。每一个启用调试的Dalvik虚拟机实例都会启动一个JDWP线程
动态调试Android 原生程序
原生程序使用传统的Linux程序调试方法如GNU调试服务器来连接进行调试。
原生程序分为动态链接库与普通可执行程序两种。前者大多内置于Android程序中,在调试时需要先启动Android程序加载它,然后使用远程附加的方式来调试,后者可以直接使用远程运行的方式来调试它。
代码注入法
所谓的代码注入是指首先反编译Android程序,然后在反汇编出的smali文件中添加Log调用的代码,最后重新打包程序运行来查看输出结果
栈跟踪法
栈跟踪法同样属于代码注入的范畴,它主要是手动想反编译后的smali文件中加入栈跟踪信息输出的代码
与注入Log输出的代码不同,栈跟踪法只需要知道大概的代码注入点,而且注入代码后的反馈信息比Log注入要详细的多
IDA Pro调试
(1)调试Android原生程序(远程调试)
所谓“远程调试”是指通过网络调试在另一个网络上的计算机运行的代码的过程。利用远程调试,我们可以使用Windows GUI版本的IDA作为一个前端接口,调试IDA支持的任何平台上的会话
(2)调试Android原生动态链接库(远程附加)
远程调试步骤
- 在IDA 6.1的目录下有一个android_server,是用来在远程端(目标机器)上运行的小程序。把ida 目录下android_server 传到android 目录中, 并设置适当权限。
如:C:\ adb push android_server /data/local/tmp/C:\ adb shell chmod 755 /data/local/tmp/android_server - 把使用的例子debugnativeapp复制到Android设备中,如/data/local/tmp目录中,并加上可执行权限
- 启动Android调试服务器
C:\ adb shell /data/local/tmp/android_server
启动成功后提示信息:
IDA Android 32-bit remote debug server(ST) v1.14. Hex-Rays (c) 2004-2011
Listening on port #23946 - 打开另一个命令提示符执行以下命令
C:\ adb forward tcp:23946 tcp:23946 - 启动IDA Pro主程序,点击菜单项“Debugger->Run->Remote ArmLinux/Android debugger”,打开调试程序设置对话框进行设置
0 0
- 安卓恶意代码分析
- 恶意代码分析
- 网安--第七章 恶意代码分析与防治
- 恶意代码分析实战
- 恶意代码分析模板
- 恶意代码分析模板
- SSH服务恶意代码分析
- 恶意代码实战分析
- NSE分析恶意代码
- 恶意代码分析二
- CCleaner恶意代码分析预警
- 浅谈恶意代码的研究分析
- 百度贴吧恶意代码分析
- 恶意代码分析利器 – scdbg
- 恶意代码分析实战-第二章
- 恶意代码--逆向分析基础入门
- 恶意代码逆向分析基础入门
- 【恶意代码分析】关键函数备忘录
- mongodb 学习笔记 06 -- mongod配置文件
- LeetCode 题解(130): Bitwise AND of Numbers Range
- 成功测试opencv1.0+vc6.0
- 黑马程序员 集合框架
- Day1 学习记录
- 安卓恶意代码分析
- 【UNIX网络编程】 22~25 高级UDP套接字编程、高级SCTP 套接字编程、带外数据、信号驱动I/O
- Java 运行时监控,第 1 部分: Java 系统运行时性能和可用性监控
- 树莓派上的立体视觉和深度知觉
- Java 运行时监控,第 2 部分: 编译后插装和性能监控
- Java 运行时监控,第 3 部分: 监控应用程序生态系统的性能与可用性
- Leecode Gas Station
- 关于 JAR 您不知道的 5 件事
- 09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider