![]() |
|
|
![]()
|
|
| kostik_16 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 23.7.2003 Репутация: нет Всего: 1 |
Мне надо удалить прогу самой себя, вот у меня есть код, но он не фурычит, как можно его исправить, что-бы он работал
Код: 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; По мойму это - бред:
P.S. Загляньте на досуге в тему "Создание области ввода" |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
По идее, 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. |
|||
|
||||
| kostik_16 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 23.7.2003 Репутация: нет Всего: 1 |
Короче это все бред!!
Возможно создать bat файл, проверял, работает, но мне это не подходит!!! Как на счет, если создать процесс отдельный от моей проги, например на основе kernell??? Ну как, слушаю ваши предложения |
|||
|
||||
| Jey_k |
|
|||
![]() WEB-командир ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4149 Регистрация: 16.11.2003 Где: Москва Репутация: нет Всего: 61 |
Костик ты и сюда..................
|
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |