Поиск:

Ответ в темуСоздание новой темы Создание опроса
> <<Удаление самого себя :))>> 
:(
    Опции темы
kostik_16
  Дата 6.1.2004, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Мне надо удалить прогу самой себя, вот у меня есть код, но он не фурычит, как можно его исправить, что-бы он работалconfused.gif?

Код:
procedure DeleteSelf;
var
module: HModule;
buf: array[0..MAX_PATH - 1] of char;
p: ULong;
hKrnl32: HModule;
pExitProcess,
pDeleteFile,
pFreeLibrary: pointer;
begin
module := GetModuleHandle(nil);
GetModuleFileName(module, buf, SizeOf(buf));
CloseHandle(THandle(4));
p := ULONG(module) + 1;
hKrnl32 := GetModuleHandle('kernel32');
pExitProcess := GetProcAddress(hKrnl32, 'ExitProcess');
pDeleteFile := GetProcAddress(hKrnl32, 'DeleteFileA');
pFreeLibrary := GetProcAddress(hKrnl32, 'FreeLibrary');
asm
lea eax, buf
push 0
push 0
push eax
push pExitProcess
push p
push pDeleteFile
push pFreeLibrary
ret
end;
end;

По мойму это - бред:
Цитата

asm
    lea eax, buf
    push 0
    push 0
    push eax
    push pExitProcess
    push p
    push pDeleteFile
    push pFreeLibrary
    ret
  end;


P.S. Загляньте на досуге в тему "Создание области ввода"
PM MAIL   Вверх
Chingachguk
Дата 6.1.2004, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата


По мойму это - бред:
QUOTE 

asm
    lea eax, buf
    push 0
    push 0
    push eax
    push pExitProcess
    push p
    push pDeleteFile
    push pFreeLibrary
    ret 


По идее, push offset Subprogram + ret передает управление на Subprogram. Можно сразу jmp. Однако Subprogram тоже завершится по ret. ret снимет со стека адрес для возврата. Здесь - вроде pDeleteFile. Delete получит параметр p и так же вернется в ExitProcess. Ну а из Exit еще никто не возвращался ;)


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
kostik_16
Дата 6.1.2004, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Короче это все бред!!
Возможно создать bat файл, проверял, работает, но мне это не подходит!!!

Как на счет, если создать процесс отдельный от моей проги, например на основе kernell???

Ну как, слушаю ваши предложенияconfused.gif?
PM MAIL   Вверх
Jey_k
Дата 10.1.2004, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


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

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



Костик ты и сюда..................


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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