You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Android ELF可执行文件通过Frida传递自定义参数

在Android通过Frida带参数启动ELF可执行文件的方法

可行,问题出在参数传递的位置——Frida要求传递给目标程序的参数必须放在--之后,否则会被识别为Frida自身的参数。

正确的启动命令

su -c "/data/local/tmp/frida -f /data/local/tmp/mycpp -s /data/local/tmp/systemhook.js -- arg1 arg2"

原理说明

--是Frida的参数分隔符,作用是明确告知Frida:分隔符之后的所有参数都要直接传递给被启动的目标进程(也就是你的mycpp程序),而不是由Frida自身处理。你之前的命令没有加--,导致arg1和arg2被当成Frida的命令行参数,没有传递给目标程序。

验证效果

运行上述命令后,目标程序会输出:

ARG 1 -> arg1
ARG 2 -> arg2

同时Frida的hook脚本会输出:

CMD USED -> echo hello

附用户提供的示例代码

C++程序(mycpp源码)

#include <iostream>
#include <unistd.h>

int main(int argc, char* argv[]){
    printf("ARG 1 -> %s\n",argv[1]);
    printf("ARG 2 -> %s\n", argv[2]);
    system("echo hello");
    return 0;
}

Frida Hook脚本(systemhook.js)

Interceptor.attach(Module.findExportByName(null, "system"), {
    onEnter: function (args) {
        console.log("CMD USED -> " + Memory.readUtf8String(args[0]));
    }
});

内容的提问来源于stack exchange,提问作者Aimar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:17:24