转自:https://hant.helplib.com/GitHub/article_127325
- 源代码名称:droidmon
- 源代码网址:http://www.github.com/idanr1986/droidmon
- droidmon源代码文档
- droidmon源代码下载
- Git URL:
复制代码
git://www.github.com/idanr1986/droidmon.git
- Git Clone代码到本地:
复制代码
git clone http://www.github.com/idanr1986/droidmon
- Subversion代码到本地:
复制代码
$ svn co --depth empty http://www.github.com/idanr1986/droidmon Checked out revision 1. $ cd repo $ svn up trunk
Droidmon - CuckooDroid的Dalvik监控框架
Check点软件技术有限公司提供。
背景
Droidmon是CuckooDroid中的一个关键部件,监视虚拟( 来宾) 机器中的应用程序并提供应用程序行为。 Droidmon是一个基于 Xposed框架的开放源码Dalvik监控框架。
Xposed是一个模块框架,可以改变系统和应用程序的行为,而无需触摸任何 APKs。 这意味着模块可以在不同版本甚至rom中工作,无需任何额外的更改。 也很容易反转。 由于所有更改都在内存中完成,你可以通过停用 MODULE 并重新引导来恢复原来的系统。 另一个优点是多个模块可以对系统或者应用程序的相同部分进行更改。 使用修改过的APKs,必须选择一个。 除非作者使用不同的组合构建多个 APKs,否则无法将它们组合在一起。
Droidmon allows you select which functions you want monitor and does all the monitoring for you. 它通过在每次加载软件包时钩子 Zygote。 Droidmon打开配置文件( 位置: /data/local/temp/hooks. conf ),读取要监视的API方法列表,每次打开新的应用程序并报告所有监视信息。 功能
- Dalvik方法的动态钩子- api/应用程序特定
- 当你输入应用程序的NAME 时,自动生成的json日志会自动解析并显示在日志中
先决条件
- root 设备。
- 安装并启用 XposedInstaller插件
用法
- 安装
Droidmon.apk
并在XposedInstaller中启用这里 MODULE。 - 将配置文件
hooks.json
按要求的钩子推送到/data/local/tmp/
。 - 重新启动Android设备。
- 验证是否已经启用 Droidmon MODULE。
- Droidmon监控已经就绪。打开新应用程序。 日志将显示在
logcat
中。
配置文件格式
hooks.json 是用json格式编写的配置文件。 它包含了钩子所需方法所需的所有信息。 列表中的每个元素都是一个字典,其中包含四个描述被监视方法的key-value 对。
第一个 key-value 对包含我们要调用的类的NAME。 第二对是我们要监视的方法的NAME。 第三对是一个布尔值,指示是否记录调用该方法的对象的信息。 最后,第四对是API方法的类型,如网络。短信。指纹等。
下面是一个示例:
复制代码
{
"hookConfigs": [
{
"class_name":"libcore.io.IoBridge",
"method":"open",
"thisObject": false,
"type":"file"
},
{
"class_name":"libcore.io.IoBridge",
"method":"close",
"thisObject": true,
"type":"file"
},
{
"class_name":"android.app.ActivityManager",
"method":"getRunningTasks",
"thisObject": false,
"type":"binder"
}
],
"trace": false
}
日志格式
配置文件和稍后调用的每个方法都以下面所见的格式生成一个日志。 配置文件中的所有信息都将显示在日志文件中。 此外,日志文件记录调用发生时的时间戳。传递给函数的参数以及返回值。 如果我们启用thisObject布尔,它将记录调用对象的信息。 最重要的是,日志还包含用于应用程序过滤的标记。 例如: Droidmon-apimonitor-<Package Name>
要筛选标记,请使用以下命令: adb logcat -d | grep Droidmon-apimonitor-com.cuckoo.test
复制代码
I/Xposed ( 1649):
Droidmon-apimonitor-com.cuckoo.test:
{
"timestamp":1436953465511,
"class":"android.telephony.SmsManager",
"method":"sendTextMessage",
"type":"sms",
"args":["0735445281","000000000000000"]
}