frida初体验
来源:互联网 发布:隐式intent传递数据 编辑:程序博客网 时间:2024/06/15 13:04
另外可以参考一个乌云drops的安卓APP动态调试-IDA实用攻略
在看apk逆向的题时,看到这个writeup,它谈到可以用frida来动态插桩,使用Frida你能够在包括安卓在内的许多平台上使用JavaScript来 hook 代码。
参考:
http://www.jianshu.com/p/ca8381d3e094
Frida是一款基于python + javascript 的hook框架,通杀android\ios\linux\win\osx等各平台,基于脚本的交互。
先在你的主力机上安装frida
pip install frida
下载完之后,就会可以使用frida
, frida-ps
等命令了。
然后下载frida-server
待传到android的目录下,执行服务程序
到这个页面,https://github.com/frida/frida/releases,找到frida-server
相关的,比如frida-server-10.1.2-android-arm.xz
,下载下来之后,解压
unxz frida-server-10.1.2-android-arm.xz
得到一个frida-server-10.1.2-android-arm
,这是一个arm平台32位的ELF文件
$ file frida-server-10.1.2-android-arm [3:04:01]frida-server-10.1.2-android-arm: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, stripped
可重命名也可不,然后将其传到android的目录下
$ adb push frida-server-10.1.2-android-arm /data/local/tmp/ [3:04:06][100%] /data/local/tmp/frida-server-10.1.2-android-arm
在android上添加执行权限,然后执行
root@hammerhead:/data/local/tmp # chmod 777 frida-server-10.1.2-android-armroot@hammerhead:/data/local/tmp # ./frida-server-10.1.2-android-arm
然后转发TCP端口到本地
$ adb forward tcp:27042 tcp:27042$ adb forward tcp:27043 tcp:27043
测试frida环境,如果出现android手机的进程列表说明搭建成功:
frida-ps -R [3:09:24] PID Name----- ---------------------------------------------- 2140 DaemonServer22053 adbd22849 android.process.acore 8574 android.process.media 251 bridgemgrd 1225 com.android.nfc 1199 com.android.phone22766 com.android.providers.calendar20319 com.android.settings 1042 com.android.systemui21756 com.android.vending 1161 com.baidu.netdisk 1310 com.baidu.netdisk:bdmoservice21334 com.baidu.netdisk:bdservice_v1 4381 com.eg.android.AlipayGphone ...
得到android手机当前最前端Activity所在的进程
Python 2.7.12 (default, Sep 28 2016, 18:41:32)[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> import frida>>> rdev = frida.get_remote_device()>>> print rdevDevice(id="tcp", name="Local TCP", type='remote')>>> front_app = rdev.get_frontmost_application()>>> print front_appApplication(identifier="siir.es.adbWireless", name="adbWireless", pid=5967)
枚举android所有运行的process
>>> processes = rdev.enumerate_processes()>>> for process in processes:... print process...Process(pid=1, name="init")Process(pid=178, name="ueventd")Process(pid=236, name="healthd")Process(pid=238, name="servicemanager")Process(pid=239, name="vold")Process(pid=240, name="rmt_storage")Process(pid=241, name="netd")Process(pid=242, name="debuggerd")Process(pid=243, name="rild")Process(pid=244, name="surfaceflinger")Process(pid=245, name="zygote")
//TODO hook android的native函数
//TODO hook android的java层函数
阅读全文
0 0
- frida初体验
- frida笔记
- frida启动进程
- Frida JAVA API 文档
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida官方手册
- Frida hook app
- Frida官方手册
- 使用Frida渗透Android app
- 【JAVA集合详解】HashMap
- 【信源编码 作业三】基于LZO算法的词典压缩器实现
- Window server 2008 搭建FTP服务器
- 自启动程序慢
- AWE & PAE
- frida初体验
- Linux:shell脚本命令: >/dev/null 2>&1 的理解
- Q & A
- 冒泡排序的一些整理
- 第一篇博客
- redis配置文件redis.conf的详细说明
- 关于"注册"异常的两个问题
- 又一次掏出IDA尝试逆向当年CCTF的apk题——失败待续
- Android异步图片加载组件之 Universal_image_loader