吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 730|回复: 2
收起左侧

[资源求助] 有没有什么freda脚本或其他可以打印Android应用so的日志记录与它的返回值等?

[复制链接]
jilu 发表于 2025-1-30 17:21
50吾爱币
有没有什么freda脚本或其他可以打印Android应用so的日志记录与它的返回值等?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

commdos 发表于 2025-1-30 20:59
在 Android 平台上,打印 .so(共享库)的日志和返回值通常涉及以下几种方法:

1. 使用 frida Hook 并打印 .so 日志
Frida 是一个强大的动态分析工具,可以 hook 共享库函数并获取返回值。可以用以下 Frida 脚本实现对某个 .so 里的函数进行拦截并打印参数和返回值。

示例:Hook libtarget.so 里的 target_function

Java.perform(function () {
    var moduleName = "libtarget.so";  // 目标 SO
    var funcName = "target_function"; // 目标函数
    var targetModule = Module.findExportByName(moduleName, funcName);

    if (targetModule) {
        Interceptor.attach(targetModule, {
            onEnter: function (args) {
                console.log("[*] Hooked " + funcName);
                console.log("Arg[0]: " + args[0].toInt32());  // 示例参数,可能需要调整
            },
            onLeave: function (retval) {
                console.log("[*] " + funcName + " returned: " + retval.toInt32());
            }
        });
    } else {
        console.log("[-] Failed to find function in module.");
    }
});
执行方式
启动目标应用:

adb shell am start -n com.target.app/.MainActivity
使用 frida 运行脚本:

frida -U -n com.target.app -s hook_so.js --no-pause
2. 使用 strace 监控 .so 系统调用
如果你想监控 .so 内部的系统调用,可以用 strace:


adb shell strace -p <app_pid> -e trace=open,read,write,close
这会打印 .so 内部的文件访问和数据读写情况。

3. 使用 logcat 监控 JNI 调用
如果 .so 通过 JNI(Java Native Interface)与 Java 交互,可以使用 logcat 过滤相关日志:


adb logcat | grep "JNI"
或者在 C/C++ 代码中加 __android_log_print,然后在 logcat 里查看:

#include <android/log.h>
#define LOG_TAG "MyNativeCode"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)

void target_function() {
    LOGD("Function called with some args");
}
4. 直接 Dump .so 调用的返回值
如果你不想 Hook,但想查看 .so 里的所有调用,可以使用 ltrace:


adb shell ltrace -p <app_pid>
它会打印 .so 里的所有动态库函数调用及返回值。

总结
frida:最强大的动态 hook 方案,适合日志记录和修改返回值。
strace:监控系统调用,如文件访问、socket 交互等。
logcat:适合 JNI 日志输出,结合 __android_log_print 使用。
ltrace:打印所有 .so 的库调用,适用于分析 .so 内部逻辑。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
dogface + 1 + 1 用心讨论,共获提升!

查看全部评分

 楼主| jilu 发表于 2025-1-31 11:09
commdos 发表于 2025-1-30 20:59
在 Android 平台上,打印 .so(共享库)的日志和返回值通常涉及以下几种方法:

1. 使用 frida Hook 并打 ...

不怎么钟意这个ai的回答
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-6-3 02:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表