• Новости
  • Темы
    • Экономика
    • Здоровье
    • Авто
    • Наука и техника
    • Недвижимость
    • Туризм
    • Спорт
    • Кино
    • Музыка
    • Стиль
  • Спецпроекты
  • Телевидение
  • Знания
    • Энциклопедия
    • Библия
    • Коран
    • История
    • Книги
    • Наука
    • Детям
    • КМ школа
    • Школьный клуб
    • Рефераты
    • Праздники
    • Гороскопы
    • Рецепты
  • Сервисы
    • Погода
    • Курсы валют
    • ТВ-программа
    • Перевод единиц
    • Таблица Менделеева
    • Разница во времени
Ограничение по возрасту 12
KM.RU
Рефераты
Главная → Рефераты → Информатика, программирование
  • Новости
  • В России
  • В мире
  • Экономика
  • Наука и техника
  • Недвижимость
  • Авто
  • Туризм
  • Здоровье
  • Спорт
  • Музыка
  • Кино
  • Стиль
  • Телевидение
  • Спецпроекты
  • Книги
  • Telegram-канал

Поиск по рефератам и авторским статьям

Как сделать чтобы запущеный 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/

Дата добавления: 02.08.2006

База рефератов на портале KM.RU существует с 1999 года. Она пополнялась не только готовыми рефератами, докладами, курсовыми, но и авторскими публикациями, чтобы учащиеся могли использовать их и цитировать при самостоятельном написании работ.


Это популяризирует авторские исследования и научные изыскания, что и является целью работы истинного ученого или публициста. Таким образом, наша база - электронная библиотека, созданная в помощь студентам и школьникам.


Уважаемые авторы! Если Вы все же возражаете против размещения Вашей публикации или хотите внести коррективы, напишите нам на почту info@corp.km.ru, мы незамедлительно выполним Вашу просьбу или требование.


официальный сайт © ООО «КМ онлайн», 1999-2025 О проекте ·Все проекты ·Выходные данные ·Контакты ·Реклама
]]>
]]>
Сетевое издание KM.RU. Свидетельство о регистрации Эл № ФС 77 – 41842.
Мнения авторов опубликованных материалов могут не совпадать с позицией редакции.

Мультипортал KM.RU: актуальные новости, авторские материалы, блоги и комментарии, фото- и видеорепортажи, почта, энциклопедии, погода, доллар, евро, рефераты, телепрограмма, развлечения.

Карта сайта


Подписывайтесь на наш Telegram-канал и будьте в курсе последних событий.


Организации, запрещенные на территории Российской Федерации
Telegram Logo

Используя наш cайт, Вы даете согласие на обработку файлов cookie. Если Вы не хотите, чтобы Ваши данные обрабатывались, необходимо установить специальные настройки в браузере или покинуть сайт.