2014-12-09 88 views
1

我有从C源编译的二进制可执行文件,我知道它使用了一些UNIX系统环境变量。不幸的是,我没有文档,反编译/逆向工程非常困难。应用程序使用哪些环境变量

有没有办法找到应用程序试图在运行时读取哪些env变量?

我的意思是,如果C的getenv读取某个文件以获取变量值或执行系统调用,则可以。那么,我能做到吗?

+1

我不是环境变量的专家,但我认为你可以用'ptrace'来跟踪系统调用。 – bzeaman 2014-12-09 12:13:45

+2

'strings(1)'可能会帮助您识别环境变量的名称。 – 2014-12-09 12:20:27

+0

谢谢,Blagovest!它有帮助。 – 2014-12-09 12:31:24

回答

1

strings(1)可能会帮助您识别环境变量的名称。 –   Blagovest Buyukliev

1

可以使用调试器,在getenv上设置断点,然后检查函数参数。即使没有调试信息,这也是可能的(尽管比较困难,因为它需要知道调用约定)。