我正在编写一个通过 pintools 运行的程序,以执行动态污点分析,但遇到了一个问题。问题是,当用户通过 scanf 或 gets 或任何此类函数向程序提供数据时,它可以归结为低级别的 read() ,我可以通过检测系统调用并找到这些数据来找到用户提供的数据执行 read() 并最终通过查看 read() 系统调用的参数和返回值来获取数据的系统调用!然而,如果数据是由用户作为命令行参数提供的,我看不到它归结为 read() 系统调用,并且不确定如何获取该数据!任何与此相关的信息都会有所帮助。如果您需要更多信息或者我的问题描述是否含糊不清,请告诉我?
感谢您的宝贵时间。
最佳答案
如果我明白您要做什么,您应该能够通过跟踪 execve()
的系统调用来查看命令行参数。
关于c - 检测命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10379100/