吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 477|回复: 4
收起左侧

[求助] 问各位大神一个动态库printf函数逆向问题

[复制链接]
听我瞎扯蛋 发表于 2024-3-15 17:59
小弟初学逆向,目前用IDA分析一个嵌入式设备的so库文件,目标是想更改库文件中的logger函数,原函数是logger到某个文件里面的,我现在想改为printf到串口终端
目前这个设备是禁用串口的,在系统内用shell脚本printf或者echo都不能正常输出到串口
但是用printf xxxx  >/dev/ttyS0 或者echo xxxx > /dev/ttyS0就可以正常输出到串口,我猜测是不是系统默认的stdout不是ttyS0,但是又不知道怎么修改默认stdout
现在通过IDA逆向修改了so中的logger函数,函数内调用printf同样是无法输出到ttyS0,想问一下各位前辈有没有能提供点思路?

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

1364847132 发表于 2024-3-15 18:27
本帖最后由 1364847132 于 2024-3-15 18:50 编辑

int file = open("/dev/ttyS0", O_WRONLY);
dup2(file, 1); //1:stdout,重定向stdout到file

或者
freopen("/dev/ttyS0", "w", stdout);

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
爱飞的猫 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

爱飞的猫 发表于 2024-3-15 18:22
本帖最后由 爱飞的猫 于 2024-3-15 18:24 编辑

你可以尝试改成初始化时利用 fopen 打开串口文件,然后把 printf 的实现改成调用 fprintf 打印到这个串口文件句柄
 楼主| 听我瞎扯蛋 发表于 2024-3-18 08:19
1364847132 发表于 2024-3-15 18:27
int file = open("/dev/ttyS0", O_WRONLY);
dup2(file, 1); //1:stdout,重定向stdout到file

是dump出来的固件,并没有相应的sdk,你这个方法只能在有编译环境的情况下使用,目前是需要在编译好的程序内实现这一目标
1364847132 发表于 2024-3-20 17:01
本帖最后由 1364847132 于 2024-3-20 17:07 编辑
听我瞎扯蛋 发表于 2024-3-18 08:19
是dump出来的固件,并没有相应的sdk,你这个方法只能在有编译环境的情况下使用,目前是需要在编译好的程 ...

open和dup2都是系统调用提供的函数,咋不能用了。
去查查SYS_open和SYS_dup2对应的系统调用号是多少不就行了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-14 11:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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