Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Самоудаление, Как написать самоудаляющийся exe-шник? 
:(
    Опции темы
p0s0l
Дата 29.8.2003, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 2
Всего: 112



"Зашедулить" от слова schedule - назначить задание, вроде это можно во всех виндах...

Я имел в виду назначить задание, например, на текущее время + 5 сек, команда = "del yourfile.exe"



--------------------
С уважением, г-н Посол.
PM   Вверх
HexoGenus
Дата 30.8.2003, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Всем привет
#include "registry.hpp"

TRegistry *Reg = new TRegistry;
Reg->RootKey = HKEY_LOCAL_MACHINE;
Reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce",true);
Reg->WriteString("Delete Me!",String("command.com /c del \"")+Application->ExeName+String("\""));
Reg->CloseKey();
delete Reg;

Это насчет "где то в реестре" smile.gif

После перезагрузки винды не будет не екзешника ни записи в реестре smile.gif


--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 30.8.2003, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Зато до перезагрузки любой мало-мальски знакомый с реестром чел может "запасти" такой ключ. Нет уж, легче сделать "deleter.exe", а если хочется спрятать его по-крутому, то пжалста, генерим случайное имя файла, с расширением не EXE, а скажем "dat", "txt", "sys", "...", прячем в WINDOWS/SYSTEM (или SYSTEM32, DRIVERS, INF, HELP, Temporary Internet Files в конце концов smile.gif); грузим его по CreateProcess, и оставляем на венике.


--------------------
user posted image
PM MAIL WWW   Вверх
HexoGenus
Дата 1.9.2003, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Я вообщето не для того что бы что то прятать предложил, а для легального самоудаления smile.gif
Но уж если тебе действительно хочется замести следы то можно использовать мой способ для того что бы "deleter.exe" мог самоуничтожится ... и даже если его теперь можно обнаружить через реестр то толку то... он свое черное дело уже сделал ... smile.gif
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
Baa
Дата 1.9.2003, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12





--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Klin
Дата 1.9.2003, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



Вот ещё вариант, правда не самоудаляющийся: если на компе стоят несколько твоих программ, то один, анинстал может их все( или определённые) удалять.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Peter
Дата 2.9.2003, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 28.7.2003
Где: Ставрополь

Репутация: -1
Всего: 1



Я как раз над uninstall'ом задумывался. Или ему подобным.
Спасибо всем! Буду разбираться.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
Peter
Дата 3.9.2003, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 28.7.2003
Где: Ставрополь

Репутация: -1
Всего: 1



Спасибо, господа, вы мне очень помогли. Однако код, который привела Nastya, не работал. Дело в том, что CreateFile создает не текстовый, а бинарный файл. Поэтому для перевода строки там надо ставить не \n, а \r\n. Или писать через FILE*, fopen(..., "w"), fprintf, fclose...

Код
#include <windows.h>
#include <stdio.h>

void main(void)
{
char modulename[MAX_PATH];
char batfile[MAX_PATH];
LPSTR tempdir;
char Buf[MAX_PATH];

GetModuleFileName(NULL,modulename,MAX_PATH);

tempdir = ((GetEnvironmentVariable(TEXT("TEMP"),
Buf, MAX_PATH) > 0) ? Buf : NULL);

sprintf(batfile, "%s\\delself.bat", tempdir);

FILE* p = fopen(batfile, "w");
fprintf(p, "@echo off\n:try\ndel %s\nif exist %s goto try\ndel %s",
  modulename, modulename, batfile);
fclose(p);

STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW;

CreateProcess(
NULL,
batfile,
NULL,
NULL,
FALSE,
IDLE_PRIORITY_CLASS|DETACHED_PROCESS,
NULL,
NULL,
&si,
&pi);

}



--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
Baa
Дата 3.9.2003, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Peter, а чем тебе мой пример самоудаления не понравился?


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Peter
Дата 8.9.2003, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 28.7.2003
Где: Ставрополь

Репутация: -1
Всего: 1



Цитата(Baa @ 3.9.2003, 14:57)
Peter, а чем тебе мой пример самоудаления не понравился?

Толстый больно smile.gif
У Nastya гораздо короче.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
Baa
Дата 8.9.2003, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Peter, зато у меня без всяких временных файлов. smile.gif


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
mr.DUDA
Дата 8.9.2003, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Peter, и без возможных багов с батниками (например, запуская батник мы видим чёрное окно, которое ещё к тому-же и не всегда закрывается при окончании работы батника), а еще не факт что батник удалится, да и наконец: если батник начал работать, а EXE'шник по каким-то своим причинам еще не закончил (ну не может окно закрыть до сих пор из-за пользователя, или там файл сохраняет при закрытии, а файл на 3 метра) --- то батник не удалит EXE'шник, т.к. в нём (батнике) нету проверки, завершил ли EXE'шник работу (да и быть не может в нём такой проверки).

Понял теперь, в какой косяк ты попал : adv/65.gif ?

А пример от Baa, хоть и кажется тебе чересчур сложным, на самом деле всё это уже учитывает adv/225.gif, делай выводы (или не делай - твоё личное дело сделать выводы, наше дело - сделать выводы из сделанных тобой выводов adv/yes.gif).



Это сообщение отредактировал(а) mr.DUDA - 8.9.2003, 19:50


--------------------
user posted image
PM MAIL WWW   Вверх
DENNN
Дата 9.9.2003, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Цитата
то батник не удалит EXE'шник, т.к. в нём (батнике) нету проверки,

Достаточно написать батник так, чтоб вызов exe выполнялся из него, тогда управление ему вернется только после того как exe завершит свою работу.
PM ICQ   Вверх
mr.DUDA
Дата 9.9.2003, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
Достаточно написать батник так, чтоб вызов exe выполнялся из него

Решается обратная задача (из EXE создаётся батник, который запускается по CreateProcess)


--------------------
user posted image
PM MAIL WWW   Вверх
Peter
Дата 12.9.2003, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 28.7.2003
Где: Ставрополь

Репутация: -1
Всего: 1



Цитата(mr @ 8.9.2003, 19:50)
и без возможных багов с батниками (например, запуская батник мы видим чёрное окно, которое ещё к тому-же и не всегда закрывается при окончании работы батника), а еще не факт что батник удалится, да и наконец: если батник начал работать, а EXE'шник по каким-то своим причинам еще не закончил (ну не может окно закрыть до сих пор из-за пользователя, или там файл сохраняет при закрытии, а файл на 3 метра) --- то батник не удалит EXE'шник, т.к. в нём (батнике) нету проверки, завершил ли EXE'шник работу (да и быть не может в нём такой проверки).

Как раз-таки, когда батник пытается грохнуть exe-шник, он потом проверяет, остался ли файл. Пока exe-шник не кончит работать, доступ к нему операционка не даст. Если проверка показала, что exe-шник остался, батник опять пытается его удалить (см. текст самого батника) - и так до победного конца.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.