frida由浅入深系列二:简单c函数

1,494 阅读1分钟

由于工作一直会遇到frida来执行各种Hook,现在梳理整个frida的相关使用场景。由于安装的资料以及文档网上已经特别多了,本系列教程忽略相关安装步骤。

编写C函数

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char   g_s[100]; 
char*   fun() 
{ 
        strcpy(g_s,   "abc "); 
        return   g_s; 
} 

此函数简单的输出字符串,字符串为"abc"。

生成可执行文件

通过ndk的clang生成可执行文件

C:\Users\g\AppData\Local\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\aarch64-linux-android21-clang a.c -o a -shared C:\Users\g\AppData\Local\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\aarch64-linux-android\21\liblog.so

文件移动到手机内

将文件push到手机内执行frida

adb push a /data/local/tmp

frida调用

由于frida启动需要绑定一个进程,我们可以直接运行任意一个app来挂起firda。

现在可以直观的看到frida调用c方法调用成功。