ReferatWorld.ru
» » » Как сделать чтобы запущеный exe сам себя удалил
Вернуться назад

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

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

}

}

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по информатике и программированию Как сделать чтобы запущеный exe сам себя удалил? Шитц Виталий Как сделать чтобы запущеный exe сам себя удалил? Можно сгегерировать BAT-файл и
Оценок: 1005 (Средняя 5 из 5)

Одними из наиболее популярных услуг на рынке IT-технологий являются создание и продвижение лендингов. Они способны положительно влиять на деятельность любого бизнес-проекта в интернете. Судя по многочисленным отзывам, заказавшие создание лендингов люди ни разу не пожалели о потраченных деньгах. Они вложили в будущее, которое неразрывно связано с интернетом. Всё больше и больше предпринимателей обращаются к услугам разных агентств, веб-студий, чтобы заказать создание лендинга у профессионалов.

© 2017 - 2022 ReferatWorld.ru