首页
社区
课程
招聘
[讨论]使计算机发次声波的驱动程序。
发表于: 2009-12-30 19:17 82637

[讨论]使计算机发次声波的驱动程序。

2009-12-30 19:17
82637
;使计算机的主板上的蜂鸣器发出次声波的驱动程序。当然也可以提升运行级别,改变i/o许可位图等方法来实现。
;次声波虽然听不到但用计算机的任务管理器可以看到,有待你用共振器检测。不足之处,敬请论坛高手指导。

;先是服务控制程序。
;QQ:112426112
;Email:leguanyuan@126.com
;websites:http://hi.baidu.com/correy
;rc me.rc
;ml /coff test.asm /link /subsystem:windows me.res
.386
.model flat, stdcall
option casemap:none
include windows.inc
include kernel32.inc
include advapi32.inc
includelib kernel32.lib
includelib advapi32.lib
.data
correy db "correy",0
filename db "sys.sys",0
.data?
hSCManager dd ?
hService dd ?
acDriverPath db 260 dup(?)
.code
start:
invoke OpenSCManager,0,0,SC_MANAGER_CREATE_SERVICE
  mov hSCManager, eax
  push eax
  invoke GetFullPathName,addr filename, sizeof acDriverPath, addr acDriverPath, esp
  pop eax
  invoke CreateService, hSCManager,addr correy,addr correy, \
    SERVICE_START + DELETE, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, \
    SERVICE_ERROR_IGNORE, addr acDriverPath, 0, 0, 0, 0, 0
   mov hService, eax
   invoke StartService, hService, 0, 0
   invoke DeleteService, hService
   invoke CloseServiceHandle, hService
  invoke CloseServiceHandle, hSCManager
ret
end start
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;rc me.rc >error.txt
;ml /nologo /c /coff sys.asm  >>error.txt
;link /nologo /driver /base:0x10000 /align:32 /out:sys.sys /subsystem:native sys.obj>>error.txt
.386
.model flat, stdcall
option casemap:none
include ntstatus.inc
include ntddk.inc
include hal.inc
includelib hal.lib
DO_DELAY MACRO;延时
mov eax, 99999999h
.while eax
  dec eax
.endw
ENDM
.code
MakeBeep1 proc dwPitch:DWORD;方法1
cli
mov al, 10110110y
out 43h, al
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
MakeBeep1 endp
MakeBeep2 proc dwPitch:DWORD;方法2
cli
invoke WRITE_PORT_UCHAR, 43h, 10110110y
mov eax, dwPitch
invoke WRITE_PORT_UCHAR, 42h, al
mov eax, dwPitch
invoke WRITE_PORT_UCHAR, 42h, ah
invoke READ_PORT_UCHAR, 61h
or  al, 11y
invoke WRITE_PORT_UCHAR, 61h, al
sti
DO_DELAY
cli
invoke READ_PORT_UCHAR, 61h
and al, 11111100y
invoke WRITE_PORT_UCHAR, 61h, al
sti
ret
MakeBeep2 endp
DriverEntry proc pDriverObject:PDRIVER_OBJECT, pusRegistryPath:PUNICODE_STRING
invoke MakeBeep1, 119318;10hz
invoke HalMakeBeep,9;方法3。
DO_DELAY
invoke MakeBeep2, 1193180;1hz
invoke HalMakeBeep, 0
mov eax, STATUS_DEVICE_CONFIGURATION_ERROR
ret
DriverEntry endp
end DriverEntry

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
2
传说中可以用来驱蚊....
2009-12-30 19:41
0
雪    币: 56
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好像在那看过
2009-12-30 20:33
0
雪    币: 227
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
恩,大杀器,
杀人于无形之中....
2009-12-30 20:35
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个夏天可以用来驱蚊子吗?我单位一到夏天文字特别多……
2009-12-30 21:27
0
雪    币: 1140
活跃值: (3046)
能力值: ( LV12,RANK:385 )
在线值:
发帖
回帖
粉丝
6
驱除蚊子苍蝇老鼠等昆虫与小动物,可以用beep函数,它可以发出超声波(37-32767赫兹)。首先保证你的电脑主板上有蜂鸣器,其实大部分电脑上都有。不知道蜂鸣器的固有频率是多少,有知道的请告诉我,Email:leguanyuan@126.com,十分感谢。
2009-12-30 21:53
0
雪    币: 1140
活跃值: (3046)
能力值: ( LV12,RANK:385 )
在线值:
发帖
回帖
粉丝
7
此文是根据汇编驱动教程改编的,类似的发声函数还有很多如:QueryPerformanceFrequency,MessageBeep,wave*……,midi*……,mmio*……,DirectX API等。
2009-12-30 22:05
0
雪    币: 222
活跃值: (161)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不是驱蚊,驱蚊是超声波,次声波是杀人攻击,听久了精神失常
2010-1-5 12:57
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
为什么不用beep
2010-1-5 13:00
0
游客
登录 | 注册 方可回帖
返回
//