C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Как стереть самого себя? / Файлы, папки, диски / Файловая система

Как стереть самого себя?

Эта программа уничтожает саму себя.

#include <windows.h>
#include <stdio.h>

void DelSelf(void)
{
        char modulename[MAX_PATH];
        char batfile[MAX_PATH];
        char batlines[MAX_PATH*4];
        LPSTR tempdir;
        char Buf[MAX_PATH]; 

        GetModuleFileName(NULL,modulename,MAX_PATH);

        tempdir = ((GetEnvironmentVariable(TEXT("TEMP"),
        Buf, MAX_PATH) > 0) ? Buf : NULL);

        strcpy(batfile,tempdir);
        strcat(batfile,"\\");
        strcat(batfile,"delself.bat");
        strcpy(batlines,"@echo off\n:try\ndel ");
        strcat(batlines,modulename);
        strcat(batlines,"\nif exist ");
        strcat(batlines,modulename);
        strcat(batlines," goto try\n");
        strcat(batlines,"del ");
        strcat(batlines,batfile);

        DWORD NOfBytes;

        HANDLE hbf= CreateFile(batfile, GENERIC_WRITE | GENERIC_READ,
        FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
        FILE_ATTRIBUTE_NORMAL, NULL);

        WriteFile(hbf,batlines,strlen(batlines),&NOfBytes, NULL);
        CloseHandle(hbf);

        STARTUPINFO         si;
        PROCESS_INFORMATION pi;
        ZeroMemory( &si, sizeof(si) );
        si.cb = sizeof(si);
        si.wShowWindow = SW_HIDE;
        si.dwFlags = STARTF_USESHOWWINDOW;
        
        CreateProcess(
                                        NULL,
                                        batfile,
                                        NULL,
                                        NULL,
                                        FALSE,
                                        IDLE_PRIORITY_CLASS|DETACHED_PROCESS,
                                        NULL,
                                        NULL,
                                        &si,
                                        &pi);

}
void main()
{
        DelSelf();
}