寻找驱动IOCTL code的想法(一)

首先明确IOCTL code的定义方法如下:


image.png
  1. 调试程序exe,对CreateFileW和DeviceIoControl下条件断点的方式抓取到至少一个IOCTL code,由于对于同一个设备来说,只有Function code和Transfer type会更改,所以在fuzz时可以大大缩小尝试的范围。
    对于这个方法目前存在的一个没有想到解决办法的难点:
    对于有的设备你并不知道要怎么对软件进行操作才能调用这个设备。所以有可能一直都抓不到对这个设备的操作,结果就是一个IOCTL code都拿不到。
    一些值得尝试的方法
  1. 通过逆向sys文件,找到特定的dispathfunction中相关内容,理论上可以拿到所有有效IOCTL code值。
    对于这个方法的没有解决难点:
    拿不到符号表加之个人汇编水平实在有限,对于略复杂的sys文件,找到对应的内容有些难。

  2. 值得尝试的一个方法
    通过内核调试的方法:写一个使用设备的函数,并使用DeviceIOContrl函数随便传一个IOCTL code值,通过断点跟踪尝试定位到具体的sys文件中具体位置。考虑的不太细,具体的实施还需要再妥善考虑一下。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • error code(错误代码)=0是操作成功完成。error code(错误代码)=1是功能错误。error c...
    Heikki_阅读 8,714评论 1 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,132评论 25 709
  • Android跨进程通信IPC整体内容如下 1、Android跨进程通信IPC之1——Linux基础2、Andro...
    隔壁老李头阅读 13,866评论 2 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 也许,每个人的18岁都应该乘坐一次绿皮火车,目的地未知,也许是海边的沙滩,也许是北国的风雪,也许是大漠的戈壁...
    彼岸风清阅读 3,342评论 0 0