添加自定义结构类型到strace

时间:2009-09-03 15:44:00

标签: linux reverse-engineering ioctl strace

我正在尝试对通过ioctl系统调用与内核驱动程序交互的用户模式共享对象进行逆向工程。我有一个头文件,其中包含内核驱动程序的ioctl接口的定义(即ioctl命令编号的#defines,以及发送到ioctl的各种数据的结构定义)。

我看到strace能够取消引用传递给系统调用的用户指针,但显然无法取消引用传递给ioctl的自定义结构。有没有一种简单的方法可以将我的定义添加到strace中,这样我就可以将有意义的数据传递给ioctl,而不仅仅是指针地址?

我有strace的源代码并已成功编译/安装它,但我尝试包含我自己的标题都没有效果。

2 个答案:

答案 0 :(得分:2)

实现这一目标的最简单方法可能是为ioctl()编写一个库插入器。在Linux here上有一个很好的指南。

您可以检查应用程序使用的自定义命令编号;并为这些结构倾倒。

答案 1 :(得分:2)

strace构建不会自动内省结构并为它们生成解析器 - 您必须编写一些代码来处理结构。