gpt4 book ai didi

linux - 对于没有源代码的二进制函数,有没有办法获得参数的数量

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:03 25 4
gpt4 key购买 nike

我没有源代码,但有二进制文件。使用命令“nm binary_name”我可以知道二进制文件中的函数。

我能知道一个函数有多少个参数吗?在 solaris 下,有没有办法做到这一点?

例如,如果函数是:func1(a int,b int,c int),那么有 3 个参数。

谢谢丹尼尔

最佳答案

没有。 Neil Butterworth 检查函数签名的建议对 C++ 来说是一个很好的建议(因为参数通常被编码到函数中,因此链接器可以区分 "int x(int)"例如“int x(float)”)但是,对于 C,您将不得不亲自动手并反汇编函数,特别注意堆栈帧在您的环境中是如何构建和使用的.

请记住,SPARC 有一个旋转的窗口堆栈,而不是常规的向下增长堆栈。您真的要深入研究 CPU 的工作方式。如果您谈论的是英特尔的 Solaris,那么旋转堆栈当然不存在。

关于linux - 对于没有源代码的二进制函数,有没有办法获得参数的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1266187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com