FRIDA + Objection 内存漫游,HOOK,anywhere

前言

VX:Ays971124 大家一起吹水加群聊天哦
Friday 是一款很优秀的HOOK工具,不用过多介绍

objection功能强大,命令众多,而且不用写一行代码,便可实现诸如内存搜索、类和模块搜索、方法hook打印参数返回值
调用栈等常用功能,是一个非常方便的,逆向必备、内存漫游神器。objection的界面及命令如下图

在这里插入图片描述

1.1 获取基本信息

首先介绍几个基本操作:

键入命令之后,回车执行;
help:不知道当前命令的效果是什么,在当前命令前加help比如,help env,回车之后会出现当前命令的解释信息;
按空格:不知道输入什么就按空格,会有提示出来,上下选择之后再按空格选中,又会有新的提示出来;
jobs:作业系统很好用,建议一定要掌握,可以同时运行多项(hook)作业;

我们以安卓内置应用“设置”为例,来示范一下基本的用法。

在手机上启动frida-server,并且点击启动“设置”图标,手机进入设置的界面,首先查看一下“设置”应用的包名。

	# frida-ps -U|grep -i setting
	 7107  com.android.settings
	13370  com.google.android.settings.intelligence

再使用objection注入“设置”应用。

objection -g com.android.settings explore

启动objection之后,会出现提示它的logo,执行的应用环境信息命令env和frida版本信息命令
在这里插入图片描述
在这里插入图片描述

1.2查看库的导出函数

运行命令memory list exports libssl.so,效果如下图2-4所示。

在这里插入图片描述
将结果保存到json文件中

当结果太多,终端无法全部显示的时候,可以将结果导出到文件中,然后使用其他软件查看内容

#memory list exports libart.so --json D:/test/libart.json

Writing exports as json to D:/test/libart.json...
Wrote exports to: D:/test/libart.json

在这里插入图片描述

1.3 内存堆搜索与执行

在堆上搜索实例
我们查看AOSP源码关于设置里显示系统设置的部分,发现存在着DisplaySettings类,可以在堆上搜索是否存在着该类
的实例。
首先在手机上点击进入“显示”设置,然后运行以下命令,并得到相应的实例地址:
# android heap search instances com.android.settings.DisplaySettings
	Class instance enumeration complete for [32mcom.android.settings.DisplaySettings[39m
Hashcode  Class                                 toString()
--------  ------------------------------------  -----------------------------------------
45781540  com.android.settings.DisplaySettings  DisplaySettings{2ba9224 #0 id=0x7f110216}

查看源码得知com.android.settings.DisplaySettings类有着getHelpResource()方法(我这里是安卓7.1 每个版本的代码不一样 )

Handle 45781540   is to class com.android.settings.DisplaySettings
Executing method: getHelpResource()
2131626535

也可以在找到的实例上直接编写js脚本,输入android heap evaluate 0x2526命令后,会进入一个迷你编辑器环境,输入console.log(“evaluate result:”+clazz.getHelpResource())这串脚本,按ESC退出编辑器,然后按回车,即会开始执行这串脚本,输出结果。

# android heap evaluate 0x2526
console.log("evaluate result:"+clazz.getHelpResource()) 

1.4 启动activity或service

直接启动activity
想要进入显示设置,可以在任意界面直接运行以下代码进入显示设置:

# android intent launch_activity com.android.settings.DisplaySettings 

查看当前可用的activity

可以使用android hooking list命令来查看当前可用的activities,然后使用上述命令进行调起。
# android hooking list activities

com.android.settings.ActivityPicker
com.android.settings.AirplaneModeVoiceActivity
com.android.settings.AllowBindAppWidgetActivity
com.android.settings.AppWidgetPickActivity
com.android.settings.BandMode
com.android.settings.ConfirmDeviceCredentialActivity
com.android.settings.CredentialStorage
com.android.settings.CryptKeeper$FadeToBlack
com.android.settings.CryptKeeperConfirm$Blank
com.android.settings.DeviceAdminAdd
com.android.settings.DeviceAdminSettings
com.android.settings.DisplaySettings
com.android.settings.EncryptionInterstitial
com.android.settings.FallbackHome
com.android.settings.HelpTrampoline
com.android.settings.LanguageSettings
。。。。。。。。

直接启动service

也可以先使用android hooking list services查看可供开启的服务,然后使用android intent launch_service 
com.android.settings.bluetooth.BluetoothPairingService命令来开启服务。

VX:Ays971124 大家一起吹水加群聊天哦

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和沐阳学逆向

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值