frida入门

404 阅读1分钟

下载

下载地址

注意:

  1. 要确认电脑上的frida-tools和frida-server版本相同。
  2. frida-server要根据手机型号选择不同的版本。
  3. 使用frida要先确认对应端口没被占用,暂时用到的有16001,27042,27043。
  4. 要记得给frida-server开权限。
  5. 不知道为什么,我的frida-server经常会连接不上,重启电脑后就好了,遇到问题,可以先重启试一下。

测试

  1. 在手机启动frida-server
./fridaserver

2. 在电脑设置连接端口和转发端口

adb connect 127.0.0.1:62001
adb forward tcp:27042 tcp:27042  
adb forward tcp:27043 tcp:27043

3. 查看手机运行情况

frida-ps -Ua

ps.这一步很容易失败,并且监听不成功什么也做不了,如果一直失败建议重启再试,或者删了重试。

使用

使用的是js。

获取运行中的apk

import frida
import sys
rdev = frida.get_remote_device()
front_app = rdev.get_frontmost_application()
print (front_app)

遍历进程

    import frida
    import sys
    rdev = frida.get\_remote\_device()
    processes = rdev.enumerate\_processes()
    for processe in processes:
    print (processe)

加载指定函数

import frida
import sys
rdev = frida.get_remote_device()
session = rdev.attach("com.mfw.roadbook") # 也可以使用attach(pid)的方式
modules = session.enumerate_modules()
for module in modules:
# print (module)
if module.name=="libmfw.so":
export_funcs = module.enumerate_exports()
for export_func in export_funcs:
print ("\t%s\t%s"%(export_func.name,hex(export_func.relative_address)))

注入apk

frida -U --no-pause -f package_name -l hook_RegisterNatives.js

frida -U -f com.kuaishou.android.common.kwguard //直接注入APP 在APP里面操作

实例对象调用方法

    //在堆上查找实例化的对象,示例代码如下!
    Java.choose("b3nac.injuredandroid", {
        onMatch: function (instance) {
            console.log("Found instance: " + instance);
            console.log("Result of secret func: " + instance.decrypt());
        },
        onComplete: function () { }
    });

问题

可能会遇到的错误

frida-ps -Ua
Failed to enumerate applications: the connection is closed

因为手机的Frida版本和电脑的Frida版本不同导致的,安装相同版本的Frida就可解决。(ps.我试了不一定有用)