微点交流论坛
» 游客:  注册 | 登录 | 帮助

 

作者:
标题: 转载【从主板唱歌到新概念病毒的开发】
gudan
高级用户





积分 605
发帖 579
注册 2007-7-20
#1  转载【从主板唱歌到新概念病毒的开发】



  Quote:
http://bbs.hackerxfiles.net/forum-31-1.html
【从主板唱歌到新概念病毒的开发】
上次 peter08发了个主板唱歌的帖子。
在网上查了下原来是个很古老的小玩意儿了.原帖是

复制内容到剪贴板 代码rivate Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long



Function playsnd(ByVal x As Long, y As Long)
Beep x, y * 3
DoEvents
End Function

Private Sub Command1_Click()
playsnd 587, 100: playsnd 784, 100: playsnd 880, 100: playsnd 988, 100:: playsnd 988, 200: playsnd 0, 100
playsnd 988, 100: playsnd 880, 100: playsnd 988, 100: playsnd 1047, 200: playsnd 988, 100: playsnd 988, 100
playsnd 880, 100: playsnd 100, 150: playsnd 880, 100: playsnd 784, 100:: playsnd 988, 100: playsnd 0, (5)
playsnd 988, 100: playsnd 0, (5)::: playsnd 988, 100: playsnd 0, (5):::: playsnd 988, 100: playsnd 880, 100
playsnd 784, 100: playsnd 740, 100: playsnd 784, 200: playsnd 100, 200:: playsnd 784, 100: playsnd 880, 100
playsnd 784, 100: playsnd 988, 100: playsnd 0, (5)::: playsnd 988, 100:: playsnd 0, (5)::: playsnd 988, 100
playsnd 0, (5)::: playsnd 988, 100: playsnd 100, 100: playsnd 587, 100:: playsnd 784, 100: playsnd 1175, 100
playsnd 0, (5)::: playsnd 1175, 99: playsnd 988, 100: playsnd 0, (5):::: playsnd 988, 100: playsnd 0, (5)
playsnd 987, 100: playsnd 100, 100: playsnd 784, 100: playsnd 0, (5):::: playsnd 784, 100: playsnd 880, 200
playsnd 784, 100: playsnd 0, (5)::: playsnd 784, 100: playsnd 0, (5):::: playsnd 784, 50:: playsnd 659, (50)
playsnd 784, 100: playsnd 659, 100: playsnd 784, 100: playsnd 880, 100:: playsnd 100, 100: playsnd 587, 110
playsnd 784, 120: playsnd 880, 130: playsnd 740, 140: playsnd 784, 200:: playsnd 1, 1::::: playsnd 1, 1
End Sub
有一定物理常识的人都知道,音调的高低与震动频率成正比,也就是说物体震动速度越快则音调越高
do re mi fa sol la si do 频率跟do的频率比 1:1 9:8 5:4 4:3 3:2 5:3 15:8 2:1
(以下单位均为Hz)
我们设do的频率为440(标准频率)
1 do   440
2 re   495
3 mi   550
4 fa   587
5 sol  660
6 la   733
7 si   825
提一个八度
1`   880
2`   990
3`   1100
4`   1174
5`   1320
6`   1466
7`   1650

我在编歌的时候发现VB不能写出空拍,但是发现VB的允许频率是37Hz到35000Hz左右.人耳的听力范围是20Hz到20000Hz,所以37Hz的频率空拍是不可取的.那么我们可以选择高频率来空拍,只要把频率定为20000Hz就听不到了(18000Hz的频率我就听不到了).
这样一来只要有谱而且看的懂,大多数歌都可以准确的编出其音调和速度了

送上一首歌曲,希望大家喜欢。



--------------------------------------------------------------

他给的那首歌曲是 回到过去.(附件有)

----------------------------------------------------------

于是我在想如果要做其他的歌曲 难道还要一个个音符去自己转?太累了体力活就交给电脑吧
我就用c写了个把音调自动转换成主板频率的工具

源码如下:
复制内容到剪贴板代码:
#include<stdio.h>
void main()
{
char a;
while(scanf("%s",&a) && a!='0')
  switch(a)
  {
   case '1': printf("playsnd 440,100:\n"; break;
   case '2': printf("playsnd 495,100:\n"; break;
   case '3': printf("playsnd 550,100:\n"; break;
   case '4': printf("playsnd 587,100:\n"; break;
   case '5': printf("playsnd 660,100:\n"; break;
   case '6': printf("playsnd 733,100:\n"; break;
   case '7': printf("playsnd 825,100:\n"; break;
      case 'a': printf("playsnd 880,100:\n"; break;
   case 'b': printf("playsnd 990,100:\n"; break;
   case 'c': printf("p 1100,100:\n"; break;
   case 'd': printf("p 1174,100:\n"; break;
   case 'e': printf("p 1320,100:\n"; break;
   case 'f': printf("p 1466,100:\n"; break;
   case 'g': printf("p 1650,100:\n"; break;
   default : printf("error\n";
  }
}
编译后的软件在附件



写完后在网上随便找了个简单的谱子自己转换了一通,然后编译出另一个主板唱歌的。
结果乐音就没有那个回到过去的完美了。

回头看 回到过去 的源码。 原来频率数都不是整数。 所以用转换软件转换的频率发音出来后就显得比较干涩。


怎么解决这个问题呢?

1、难道还要把音符划分的更细?代码量就可想而知的大啊..


下面是重点.


2、主板的能发出的最高频率是多少?最低频率是多少?


众人皆知,高频声音和低频声音都会对人体造成负面影响。有的甚至会让人呕吐头晕。

于是我又有了新的想法.



我们在编写病毒的时候,是否可以加入以上主板发声的代码.
把频率设置特高.主板发音很高,如果长时间发音的话是否会造成主板的硬件损伤?烧坏?同时对人体造成伤害?


这样是否就算是一种新型的病毒?  


-----对软件系统以外的东西造成伤害的病毒?

破坏硬件和人体的病毒?





能力有限,时间有限,所以还没有加以实践。再此我只是抛砖引玉,欢迎有兴趣的朋友来讨论.文章有理论上错误的地方希望大家及时指出。



※ ※ ※ 本文纯属【gudan】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

相思无用 唯别而已
别期若有定
千般煎熬又何如
莫道黯然销魂
何处柳暗花明
2008-11-1 03:05
查看资料  发短消息   编辑帖子
snhao
银牌会员




积分 1791
发帖 1782
注册 2007-6-12
#2  

哇,还有这种事?真有钻研精神。

附件在哪儿呢?

※ ※ ※ 本文纯属【snhao】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-11-1 09:02
查看资料  发短消息   编辑帖子
bigssorange
新手上路





积分 3
发帖 3
注册 2008-7-1
#3  哈哈

大于20kHz是超声波
喇叭发不出超声波,硬件决定的,纸盆厚度不适合
发出超声波得用专门的超声头
楼主想想,能发出20KHZ声音的喇叭都在专门的价格天文数字的音箱中,几元的PC喇叭是不行的,当然,发出了我们这种普通耳朵也未必听到

※ ※ ※ 本文纯属【bigssorange】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-11-2 12:40
查看资料  发送邮件  发短消息   编辑帖子
yurong7777777
高级用户





积分 536
发帖 534
注册 2008-9-12
#4  

了不起

※ ※ ※ 本文纯属【yurong7777777】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-11-2 14:21
查看资料  发送邮件  发短消息  QQ   编辑帖子
点饭的百度空间
银牌会员




积分 2315
发帖 2236
注册 2007-11-30
#5  

研制出来 希望微点能防

※ ※ ※ 本文纯属【点饭的百度空间】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint
2008-11-2 17:52
查看资料  发送邮件  访问主页  发短消息   编辑帖子
新时代的炫哥
注册用户




积分 51
发帖 51
注册 2008-10-27
#6  

突然想起了柯南的发声打110

※ ※ ※ 本文纯属【新时代的炫哥】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2008-11-7 15:25
查看资料  发短消息   编辑帖子



论坛跳转:

可打印版本 | 推荐 | 订阅 | 收藏


[ 联系我们 - 东方微点 ]


北京东方微点信息技术有限责任公司 福建东方微点信息安全有限责任公司

闽ICP备05030815号