Страница 2 из 2
Второй способ:
Code: |
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; |
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!