Код (Text): InjectStop STRUCT PushFreeLibrary BYTE ? FreeLibraryArg DWORD ? CallFreeLibrary WORD ? CallFreeLibraryAddr DWORD ? PushExitThread BYTE ? ExitThreadArg DWORD ? CallExitThread WORD ? CallExitThreadAddr DWORD ? AddrExitThread DWORD ? AddrFreeLibrary DWORD ? InjectStop ENDS InjectStopCode proc lpPID:DWORD local EP: dword local Memory: dword local e_lfanew: dword local ThID:DWORD local Inj: InjectStop invoke OpenProcess, PROCESS_ALL_ACCESS, 0, lpPID test eax,eax je @f mov Handle,eax mov edi,hInstDll ; hInstance удаляемого модуля add edi,3Ch invoke ReadProcessMemory,Handle, edi, addr e_lfanew, 4, addr BytesWritten mov edi,hInstDll add edi,e_lfanew lea eax,(IMAGE_NT_HEADERS ptr [edi]).OptionalHeader.AddressOfEntryPoint mov Memory,eax invoke ReadProcessMemory,Handle, Memory, addr EP, 4, addr BytesWritten mov edi,hInstDll add edi,EP invoke VirtualAllocEx, Handle, 0, sizeof InjectStop, MEM_COMMIT, PAGE_EXECUTE_READWRITE mov Memory,eax mov Inj.PushFreeLibrary,68h push hInstDll pop Inj.FreeLibraryArg mov Inj.CallFreeLibrary,15FFh mov Inj.CallFreeLibraryAddr,eax add Inj.CallFreeLibraryAddr,1Ah mov Inj.PushExitThread,68h mov Inj.ExitThreadArg,0 mov Inj.CallExitThread,15FFh mov Inj.CallExitThreadAddr,eax add Inj.CallExitThreadAddr,16h invoke GetModuleHandle, $CT0("kernel32.dll") push eax invoke GetProcAddress, eax, $CT0("ExitThread") mov Inj.AddrExitThread,eax pop eax invoke GetProcAddress, eax, offset FreeLib ; имя dll mov Inj.AddrFreeLibrary,eax invoke WriteProcessMemory,Handle, Memory, addr Inj, sizeof InjectStop, addr BytesWritten test eax,eax je @f invoke CreateRemoteThread, Handle, NULL, 0, Memory, NULL, 0, addr ThID test eax,eax je @f invoke CloseHandle,eax mov eax,1 ret @@: xor eax,eax ret InjectStopCode endp