1、Windows内核安全 编 程 实 践之路安于此生 看雪学院自我介 绍安于此生 ExpLife,现任高级逆向工程师。主要从事 windows驱动开发及逆向方面的工作,擅长 C/C+,ASM,软件调试逆向 ,恶意代码分析与对抗。主页 :https:/ UNREFERENCED_PARAMETER宏的运用 初识 UNICODE_STRING结构 探究 驱动 程序入口函数的两个参数 在编写驱动的时候 ,如果有函数的参数在函数体内未引用 , 并且将警告视为错误的编译选项启用了的话 ,这时驱动程序 编译会报错 ,并提示程序中存在未引用的变量 .这个时候我 们只需要使用 UNREFERENCED_PARA
2、METER来描述未引 用到的参数就可以消除该警告UNREFERENCED_PARAMETER宏的运用typedef struct _UNICODE_STRING USHORT Length;USHORT MaximumLength;PWSTR Buffer; UNICODE_STRING, *PUNICODE_STRING;Length:存储在缓冲区中的字符串所占的字节数MaxinumLength:缓冲区能够容纳的字节数Buffer:指向了用于包含一个宽字符字符串的缓冲区初识 UNICODE_STRING结构入口函数的第一个参数 PDRIVER_OBJECT DriverObjecttyped
3、ef struct _DRIVER_OBJECT CSHORT Type; /驱动程序的类型 CSHORT Size; /驱动对象结构体的大小PDEVICE_OBJECT DeviceObject; /指向驱动程序创建的设备对象 ,这些设备对象构成一个链表ULONG Flags; /驱动程序标志PVOID DriverStart; /驱动程序映像的起始地址ULONG DriverSize; /驱动程序映像的大小PVOID DriverSection; /指向驱动程序映像的内存区对象 ,可以通过该成员遍历系统中所有的驱动模块PDRIVER_EXTENSION DriverExtension; /
4、指向驱动程序对象的扩展结构UNICODE_STRING DriverName; /驱动的名称PUNICODE_STRING HardwareDatabase; /设备的硬件数据库名 ,一般为HKEY_LOCAL_MACHINEHardwareDESCRIPTIONSystemPFAST_IO_DISPATCH FastIoDispatch; /指向文件系统以及网络传输驱动会用到的派遣函数的指针表PDRIVER_INITIALIZE DriverInit; /指向 DriverEntry函数 ,这是 IO管理器设置的PDRIVER_STARTIO DriverStartIo; /记录 StartIO例程的函数地址 ,用于串行化操作 .PDRIVER_UNLOAD DriverUnload; /指向驱动卸载时所用的回调函数地址PDRIVER_DISPATCH MajorFunctionIRP_MJ_MAXIMUM_FUNCTION + 1; /指向驱动程序的派遣函数地址表 DRIVER_OBJECT,*PDRIVER_OBJECT;探究 驱动 程序入口函数的两个参数入口函数的第二个参数 PUNICODE_STRING RegistryPath 指向代表该驱动程序注册表键路径的 UNICODE_STRING结构探究 驱动 程序入口函数的两个参数