frida 简单试用

内容来自官方访问,主要是一个学习试用

安装frida

推荐基于venv

python3 -m venv venv
source  venv/bin/activate
pip install frida-tools

案例

进行分析c 语言的函数调用

  • hello.c
#include <stdio.h>
#include <unistd.h>
 
void
f (int n)
{
  printf ("Number: %d\n", n);
}
 
int
main (int argc,
      char * argv[])
{
  int i = 0;
 
  printf ("f() is at %p\n", f);
 
  while (1)
  {
    f (i++);
    sleep (1);
  }
}

构建

gcc -Wall hello.c -o hello
  • frida 钩子
    hook.py
 
from __future__ import print_function
import frida
import sys
 
session = frida.attach("hello")
script = session.create_script("""
Interceptor.attach(ptr("%s"), {
    onEnter: function(args) {
        send(args[0].toInt32());
    }
});
""" % int(sys.argv[1], 16))
def on_message(message, data):
    print(message)
script.on('message', on_message)
script.load()
sys.stdin.read()

运行

  • 运行hello
    同时会包含地址
    地址信息 0x40057d
 
./hello 
f() is at 0x40057d
Number: 0

捕捉

python hook.py  0x40057d

效果

 

 

说明

以上是frida 一个简单使用,从功能体验上,frida 还是比较强大的,而且还是比较灵活的,很值得深入学习下

参考资料

https://frida.re/docs/functions/

posted on 2022-09-04 20:00  荣锋亮  阅读(60)  评论(0编辑  收藏  举报

导航