Реферат

Реферат Как сделать чтобы запущеный exe сам себя удалил

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 17.4.2025



Как сделать чтобы запущеный exe сам себя удалил?

Шитц Виталий

Как сделать чтобы запущеный exe сам себя удалил? Можно сгегерировать BAT-файл и выполнить его, а можно и по другому:

Этот код требует, чтобы была определена переменная окружения COMSPEC, работает на всех ОС Windows.\

После вызова функции нужно немедленно выходить из программы, иначе не сработает.

Автор Tony Varnas.

BOOL SelfDelete()

{

 TCHAR szFile[MAX_PATH], szCmd[MAX_PATH];
 if((GetModuleFileName(0,szFile,MAX_PATH)!=0) &&

 (GetShortPathName(szFile,szFile,MAX_PATH)!=0))

 {

 lstrcpy(szCmd,"/c del ");

 lstrcat(szCmd,szFile);

 lstrcat(szCmd," >> NUL");
 if((GetEnvironmentVariable("ComSpec",szFile,MAX_PATH)!=0) &&

 ((INT)ShellExecute(0,0,szFile,szCmd,0,SW_HIDE)>32))

 return TRUE;

 }

 return FALSE;

}

Следующий код работает только под NT, автор Gary Nebbett:

include <windows.h>
int main(int argc, char *argv[])

{

 char buf[MAX_PATH];

 HMODULE module;

 

 module = GetModuleHandle(0);

 GetModuleFileName(module, buf, MAX_PATH);

 CloseHandle((HANDLE)4);

 

 __asm

 {

 lea eax, buf

 push 0

 push 0

 push eax

 push ExitProcess

 push module

 push DeleteFile

 push UnmapViewOfFile

 ret

 }

 

 return 0;

}

Ну а это – вариант предыдущего, но под Win9x, автор Tony Varnas.

int main(int argc, char *argv[])

{

 char buf[MAX_PATH];

 HMODULE module;

 

 module = GetModuleHandle(0);

 GetModuleFileName(module, buf, MAX_PATH);
 __asm

 {

 lea eax, buf

 push 0

 push 0

 push eax

 push ExitProcess

 push module

 push DeleteFile

 push FreeLibrary

 ret

 }

 

 return 0;

}

Ну и два последних в одной функции:

void SelfDelete()

{

 char buf[MAX_PATH];

 HMODULE module;

 DWORD fnFreeOrUnmap;

 

 module = GetModuleHandle(0);

 GetModuleFileName(module, buf, MAX_PATH);
 // На случай Win9x

 if(0x80000000 & GetVersion())

 {

 fnFreeOrUnmap = FreeLibrary;

 }

 // для ядра WinNT

 else

 {

 fnFreeOrUnmap = UnmapViewOfFile;

 CloseHandle((HANDLE)4);

 }
 __asm

 {

 lea eax, buf

 push 0

 push 0

 push eax

 push ExitProcess

 push module

 push DeleteFile

 push fnFreeOrUnmap

 ret

 }

}

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.rsdn.ru/



1. Контрольная работа Технико-экономическое проектирование пищевых предприятий
2. Реферат Основные этапы проведения переговоров
3. Контрольная работа Государственное регулирование рыночной экономики 2
4. Реферат на тему How Are Your Sleeping Habits Essay Research
5. Реферат Современное состояние качества воды р. Оби в пределах Тюменской области
6. Реферат на тему A Timless Tragedy Essay Research Paper A
7. Курсовая на тему Налогообложение прибыли предприятия
8. Реферат Нормативные документы Банка России
9. Реферат Статистика ДТП в Новосибирской области
10. Реферат Автоматизированные информационные технологии в учете денежных средств