Реферат

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

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

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

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

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

от 25%

Подписываем

договор

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

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



Как сделать чтобы запущеный 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. Реферат на тему Media 2 Essay Research Paper Media and
2. Изложение Джордж Бернард Шоу. Пигмалион
3. Реферат на тему The Solar System Essay Research Paper The
4. Реферат на тему Romeo And Juliet Essay Research Paper SEXUAL
5. Реферат Таможенный тариф как инструмент регулирования внешнеэкономической деятельности
6. Реферат Способы представления статистических данных
7. Реферат Особенности административного судопроизводства
8. Курсовая на тему Калькулювання продукції сучасні методи калькулюванн
9. Реферат Финансы акционерных обществ 4
10. Реферат на тему A Portrait Of Duke Ellington Essay Research