看流星社区

 找回密码
 注册账号
查看: 3182|回复: 3

驱动逆向时DriverEntry开始的代码是干什么用的啊?

[复制链接]

该用户从未签到

发表于 2011-3-11 09:40:53 | 显示全部楼层 |阅读模式
NTSTATUS __stdcall DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
INIT:00011685                 public DriverEntry
INIT:00011685 DriverEntry     proc near
INIT:00011685                 mov     eax, dword_11600
INIT:0001168A                 test    eax, eax
INIT:0001168C                 mov     ecx, 0BB40E64Eh
INIT:00011691                 jz      short loc_11697
INIT:00011693                 cmp     eax, ecx
INIT:00011695                 jnz     short loc_116B0
INIT:00011697
INIT:00011697 loc_11697:                              ; CODE XREF: DriverEntry+Cj
INIT:00011697                 mov     eax, ds:KeTickCount
INIT:0001169C                 mov     eax, [eax]
INIT:0001169E                 xor     eax, offset dword_11600
INIT:000116A3                 mov     dword_11600, eax
INIT:000116A8                 jnz     short loc_116B0
INIT:000116AA                 mov     dword_11600, ecx
INIT:000116B0
INIT:000116B0 loc_116B0:                              ; CODE XREF: DriverEntry+10j
INIT:000116B0                                         ; DriverEntry+23j
INIT:000116B0                 jmp     sub_10DC2
INIT:000116B0 DriverEntry     endp

看了几个驱动的开头,都是这个东西,请问下这最开始的东西是干什么的啊?好像没什么用啊!

该用户从未签到

发表于 2011-3-11 09:41:01 | 显示全部楼层
估计是向C语言差不多的入口初始化函数,再往下是GetModuleHandle,call main。驱动可能也有在驱动入口的初始化代码,然后DriverEntry。

该用户从未签到

发表于 2011-3-11 09:41:09 | 显示全部楼层
驱动程序和系统DLL一样,需要一个入口函数格式是系统定义好的必须遵守,但函数名称可以自定义,驱动的入口函数只有两个指针型参数,第一个是指向驱动对象结构系统的PDRIVER_OBJECT在ntddk.inc中定义的是一个指针[PDRIVER_OBJECT  typedef PTR DRIVER_OBJECT],另一个是指向注册表中驱动程序初始化设置的 注册表键路径的字符串 PUNICODE_STRING在ntdef.inc中定义的是[PUNICODE_STRING typedef PTR UNICODE_STRING]。

该用户从未签到

发表于 2011-3-11 09:41:15 | 显示全部楼层
编译的时候开启了gs cookie的都是这样的
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-25 23:35

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表