首页
社区
课程
招聘
5
[原创]Win32Asm 驱动学习笔记<4> 最简单的驱动程序
发表于: 2013-8-11 18:03 11770

[原创]Win32Asm 驱动学习笔记<4> 最简单的驱动程序

2013-8-11 18:03
11770
1
2
3
4
5
6
7
8
9
10
11
12
13
     .386
.model flat, stdcall
option casemap:none
<b>include test.inc</b>
.code
DriverEntry proc pDriverObject:PDRIVER_OBJECT,pusRegistryPath:PUNICODE_STRING
    <b>invoke DbgPrint, $CTA0("Hello world! ")</b>
   <b>mov eax,STATUS_DEVICE_CONFIGURATION_ERROR</b>
    ret
 
DriverEntry endp
 
end DriverEntry
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
   ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;  beeper - Kernel Mode Drive
;  Makes beep thorough computer speaker
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.386
.model flat, stdcall
option casemap:none
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                              I N C L U D E   F I L E S
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
 
include w2k\ntstatus.inc
include w2k\ntddk.inc
 
 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                     E Q U A T E S
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
TIMER_FREQUENCY        equ 1193167                   ; 1,193,167 Hz
OCTAVE                 equ 2                         ; octave multiplier
PITCH_C                equ 523                       ; C        -  523,25 Hz
PITCH_Cs               equ 554                       ; C#       -  554,37 Hz
PITCH_D                equ 587                       ; D        -  587,33 Hz
PITCH_Ds               equ 622                       ; D#       -  622,25 Hz
PITCH_E                equ 659                       ; E        -  659,25 Hz
PITCH_F                equ 698                       ; F        -  698,46 Hz
PITCH_Fs               equ 740                       ; F#       -  739,99 Hz
PITCH_G                equ 784                       ; G        -  783,99 Hz
PITCH_Gs               equ 831                       ; G#       -  830,61 Hz
PITCH_A                equ 880                       ; A        -  880,00 Hz
PITCH_As               equ 988                       ; B        -  987,77 Hz
PITCH_H                equ 1047                      ; H        - 1046,50 Hz
; We are going to play c-major chord
 
 
TONE_C                 equ TIMER_FREQUENCY/(PITCH_C*OCTAVE)
TONE_E                 equ TIMER_FREQUENCY/(PITCH_E*OCTAVE)
DELAY                  equ 1800000h          ; for my ~800mHz box
 
 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                         M A C R O S
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
DO_DELAY MACRO
    mov eax, DELAY
    .while eax
        dec eax
    .endw
ENDM
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                            C O D E
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.code
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                            MakeBeep
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
MakeBeep  proc dwPitch:DWORD
    ; Direct hardware access
    ;设置定时器的控制寄存器
    cli
    mov al, 10110110y
    out 43h, al
     
    ;操作将初始值的低位字节和高位字节送到42h端口
    mov eax, dwPitch
    out 42h, al
    mov al, ah
    out 42h, al
    ; 打开扬声器
    in al, 61h
    or  al, 11y
    out 61h, al
    sti
    DO_DELAY
    cli
    ; 关闭扬声器
    in al, 61h
    and al, 11111100y
    out 61h, al
 
 
    sti
    ret
 
 
MakeBeep endp
 
 
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;                                       DriverEntry
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
DriverEntry proc pDriverObject:PDRIVER_OBJECT, pusRegistryPath:PUNICODE_STRING
 
 
 
 
  invoke MakeBeep, TONE_C
  DO_DELAY
  invoke MakeBeep, TONE_E
    
    mov eax, STATUS_DEVICE_CONFIGURATION_ERROR
    ret
 
 
DriverEntry endp
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
end DriverEntry

[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费 5
支持
分享
赞赏记录
参与人
雪币
留言
时间
心游尘世外
为你点赞~
2024-5-31 06:00
QinBeast
为你点赞~
2024-5-31 05:52
飘零丶
为你点赞~
2024-4-3 00:48
shinratensei
为你点赞~
2024-2-22 00:32
PLEBFE
为你点赞~
2023-3-7 00:29
最新回复 (14)
雪    币: 45
活跃值: (55)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
跟lz学下驱动!
喜欢有图的文章。。
2013-8-11 18:08
0
雪    币: 7074
活跃值: (5069)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
继续来学习,非常感谢
2013-8-11 18:10
0
雪    币: 104167
活跃值: (202044)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
+1
2013-8-11 18:14
0
雪    币: 55943
活跃值: (21560)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
非安全系列学习笔记很不错
2013-8-11 18:40
0
雪    币: 750
活跃值: (227)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
6
呵呵 ,谢谢老大的鼓励
2013-8-11 18:58
0
雪    币: 167
活跃值: (190)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
保持关注ing
2013-8-11 19:41
0
雪    币: 283
活跃值: (192)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
大牛能推荐汇编语言的学习流程吗?
2013-8-11 21:00
0
雪    币: 10090
活跃值: (2947)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
写的很长很详细,不错~
2013-8-11 23:37
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
必须支持一个啊
2013-8-11 23:48
0
雪    币: 750
活跃值: (227)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
11
我不是大牛 ,我也很菜
我学汇编是先看的王爽的8086汇编教程,然后是IczeLion的W32汇编教程,安装我第二章提到的RadASM汉化增强版 里面就附带了这些文档
2013-8-12 08:18
0
雪    币: 219
活跃值: (878)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
12
顶~ 我昨天那个OBECJT_type地址多移位了一次导致整篇文章错误 已经修正~
2013-8-12 10:51
0
雪    币: 750
活跃值: (227)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
13
额 ,我现在还没时间研究OBECJT ,等我的学习笔记同步了可能会引用你的内容
2013-8-12 17:16
0
雪    币: 707
活跃值: (1301)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
14
我是来吸精的!学习
2013-8-12 17:30
0
雪    币: 93
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
15
支持非安全大大分享学习经验!!!
2013-8-12 21:31
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册