寻找驱动IOCTL|寻找驱动IOCTL code的想法(一)
首先明确IOCTL code的定义方法如下:
文章图片
image.png
- 调试程序exe,对CreateFileW和DeviceIoControl下条件断点的方式抓取到至少一个IOCTL code,由于对于同一个设备来说,只有Function code和Transfer type会更改,所以在fuzz时可以大大缩小尝试的范围。
对于这个方法目前存在的一个没有想到解决办法的难点:
对于有的设备你并不知道要怎么对软件进行操作才能调用这个设备。所以有可能一直都抓不到对这个设备的操作,结果就是一个IOCTL code都拿不到。
一些值得尝试的方法:
- 通过逆向sys文件,找到特定的dispathfunction中相关内容,理论上可以拿到所有有效IOCTL code值。
对于这个方法的没有解决难点:
拿不到符号表加之个人汇编水平实在有限,对于略复杂的sys文件,找到对应的内容有些难。
- 【寻找驱动IOCTL|寻找驱动IOCTL code的想法(一)】值得尝试的一个方法
通过内核调试的方法:写一个使用设备的函数,并使用DeviceIOContrl函数随便传一个IOCTL code值,通过断点跟踪尝试定位到具体的sys文件中具体位置。考虑的不太细,具体的实施还需要再妥善考虑一下。
推荐阅读
- 如何寻找情感问答App的分析切入点
- 两感一练
- 寻找春天(2018.3)
- 寻找天使啦~~~
- 装修公司如何寻找精准客户
- 2021年第四周复盘|2021年第四周复盘 | 寻找初心,再次出发
- 十月的故事(三)
- Spring注解驱动第十讲--@Autowired使用
- 恋爱,是一段旅程,寻找自己,也寻找爱情!
- 突破恐惧,寻找生命的力量!