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


Полнотекстовый поиск по базе:

Главная >> Реферат >> Информатика, программирование


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




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

Похожие работы:

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

    Реферат >> Информатика, программирование
    ... , как происходит доступ к SCSI, ему важно, чтобы всё ... тип TCDROMs, содержащий в себе информацию о количестве CD-ROM ... принимаемых данных Здесь я сделаю небольшое пояснение относительно размера ... необходимо знать лишь сами команды и заполнять соответствующим ...
  • Семантический анализ структуры EXE файла и дисассемблер (с примерами и исходниками), вирусология

    Реферат >> Информатика, программирование
    ... похожее на себя самого. У ... сделать вывод, что, так как язык ассемблера для компьютера “родной”, то и самая ... запущенная ЕХЕ-программа. Вирус-спутник обезвредить довольно просто - достаточно удалить ... оригинального) так, чтобы при запуске инфицированного ...
  • Вирусы

    Реферат >> Информатика, программирование
    ... включающие в себя эвристический ... EXE или NAVW32.EXE), функции сторожа — отдельная резидентная программа (NAVTSR.EXE или NAVBRES.EXE ... описано, как сделать, чтобы эта ... не удаляли) какие-либо ... именно: • запущен зараженный исполнимый ... (и тем самым прикладных программ ...
  • Жиль Липовецки "Эра пустоты"

    Статья >> Культурология
    ... мнения: Нарцисс запущен на ор­биту. ... переделывает реальность, куда и удаляет­ся внутренняя сущность моего „Я\", ... Эко У. Открытое произведение {Eco U. L\'Cfeuvre ouverte. Ed ... ближнему как к «самому себе», от которой следует отмежеваться, чтобы сделать понятным ...
  • SQL Server 2000

    Реферат >> Информатика, программирование
    ... системе. Сама по себе сетевая ... запущен командой sqlservr.exe, так как в этом случае сервер работает как самостоятельное приложение, а не как ... другому. Чтобы удалить владельца ... owner name" ] Если необходимо сделать пользовательский тип данных доступным ...
  • Исследование возможностей операционной системы Windows

    Контрольная работа >> Информатика, программирование
    ... которой был запущен данный экземпляр Cmd.exe. % ... set variablename=значение Чтобы удалить переменную, в ... несколько способов сделать это: очистить ... считается инертным, т.е. сам по себе он ничего не выполняет ... она демонстрирует, какой код и какие данные оказываются ...
  • Windows ХР

    Дипломная работа >> Информатика, программирование
    ... обязательно включает в себя язык программирования ( ... Пуск и ярлыки запущенных приложений, а ... чтобы запустить какую-либо программу или открыть документ, достаточно сделать ... Ctrl+Esc, чтобы одновременно ... сами программы с компьютера не удаляются. При запуске какой ...
  • Администрирование локальных сетей

    Реферат >> Компьютерные науки
    ... (клавиши ESC j ,ESC k). По ... удалять объектные модули в общедоступной библиотеке. Поэтому, чтобы ... в системе (кроме самой себя ) посылает 9-й сигнал ... самое можно сделать используя командыв hpux как ... как прльзователь запустивший процесс и в каком окружении запущен ...
  • Графический интерфейс Windows95

    Реферат >> Информатика, программирование
    ... как названия запущенных программ и некоторых других открытых окон указаны на самих ... ESC. 1.4.Как отформатировать диск. Чтобы ... начнет освобождать сама себя. Поэтому ... самое можно сделать с отдельными файлами, компьютерами в сети, принтерами… и т.д. Чтобы удалить ...
  • Ознакомление с приложениями Windows

    Учебное пособие >> Информатика, программирование
    ... и даже удаляться из памяти. Сама куча в ... только лишь описывает запущенную задачу, как она есть, ... порчи данных. Чтобы этого избежать, сделали так — ... STUB ‘stubexe.exe’ Здесь stubexe.exe — имя приложения ... представлять себе как работает Windows, каким функциям ...