我正在尝试分析第三方软件如何控制某些硬件。该板基于 i.mx7,运行 i.MX Linux 内核 3.14.52。
该板是一个开发板,正在运行一些我没有代码的演示软件。大多数配置是通过ioctl
调用完成的,我试图用它strace
来了解更多关于正在设置/获取的信息。
作为一个例子,我得到以下信息strace
:
ioctl(4, FBIOPUT_VSCREENINFO, 0x19fcebc)
我想以某种方式取消引用第三个参数中的指针以查看数据。我知道数据的结构,从我读过的内容来看,如果strace
还不知道你的结构,那么你就没有运气。
我也读过关于编写我自己的代码ptrace
来做类似的事情,但每个例子都不是针对 ARM 的。我看到的代码使用ORIG_EAX
andEAX
寄存器和 ARM 我相信使用orig_r
and r7
,但我不知道如何访问“寄存器”。我对 Linux 编程很陌生。
令人惊讶的是,我什至无法在详尽的谷歌搜索中轻松找到任何东西。有些线程暗示了它,但我找不到细节。我不能是唯一需要ptrace
在 ARM 上使用的人吗?诚然,我可能是唯一一个你不知道如何使用它的人!
如果无法ptrace
正常工作,我会很高兴看到strace
指示结构所在的内存,我可以手动重建它们。我该怎么办?
感谢您的任何提示或指示,我真的碰到了一堵砖墙。