Domanda

Ho goduto una penalità di creazione processo pesante sul mio Windows XP Home SP3 per circa due mesi. Il problema è più evidente e fastidioso con compiti che fanno creare un sacco di processi, come script di shell (per inciso, script bash su Cygwin), Makefiles, o l'estrazione, un pacchetto IzPack come ad esempio il programma di installazione SpringSource Tool Suite (un sacco di unpack200.exe separata JAR estrattore processi). Sono sicuro che la creazione di processo che di dall'osservare uscita diagnostica script bash, o guardare i processi vengono visualizzati nella task manager. Non v'è alcun ritardo percepibile una volta un processo è attivo e funzionante.

Ho segnalato il problema sulla mailing list Cygwin come ho inizialmente ed erroneamente pensato solo Cygwin è stata colpita, sospettando un bug nel Cygwin DLL, o roba del genere.

rallentamento dopo l'aggiornamento su Win32 (XP Home) - (link al mio post alla lista Cygwin)

Mi chiedo se qualcosa è installato qualche schifezza in un gancio di creazione processo che presumo possa esistere su Windows. (Come per il gestore della sicurezza in Java .) Un virus o software di sicurezza? Non ho consapevolmente installato sia. Ho anche il sospetto di un aggiornamento Microsoft problema tecnico, ma credo che sarebbe stato risolto che ormai.

Per quanto ne so, i processi su Win32 sono creati da CreateProcess.

Come faccio a sapere il motivo per cui la creazione di processo richiede molto tempo e che cosa esattamente sta succedendo qui? C'è qualcosa di simile strace per Linux, o forse anche qualcosa di meglio?

È stato utile?

Soluzione

Molte grazie a Luca per avermi nella giusta direzione. Procmon è uno strumento fantastico. Letteralmente, un nuovo mondo all'interno del sistema aperto per me. E il colpevole è stato trovato rapidamente impostando un filtro per includere parent process ID = WINPID of a Cygwin bash.exe e poi basta monitoraggio di un singolo comando ls. E 'stato il malware agganciato in una chiave di Registro di sistema denominata AppCertDlls, di cui sono stato naturalmente del tutto inconsapevoli prima.

Una volta che ho spostato il clipmote.dll di malware di system32, la velocità di creazione di processo è stato immediatamente tornato alla normalità.

Credo che ho contratto questo virus installando Gratuito avvelenato.

ho trascorso qualche tempo approfondendo il problema e l'ho trovato sia spaventoso e interessante, quindi ecco quello che ho trovato, e naturalmente sarò grato per tutte le ulteriori informazioni o eventuali commenti si potrebbe avere.

La DLL malware è stato caricato in ogni processo per singolo utente, anche Explorer, taskmgr, e ProcMon stesso. elabora solo sotto SYSTEM (come elencato in in procexp.exe) sembra essere rimasto non infetti.

Il problema qui è che HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls viene controllato (almeno sul mio sistema, ma forse su molti sistemi, e probabilmente anche per impostazione predefinita) per caricare DLL che possono avere una voce in capitolo se non qualche binario è consentita l'esecuzione o meno restituendo un valore da una funzione che si chiama su di loro:

NTSTATUS STDCALL CreateProcessNotify (LPCWSTR lpApplicationName, ULONG Reason); 

In realtà, ho avuto una voce in quella chiave chiamato sethdown, ma il nome potrebbe essere qualsiasi cosa.

RegEnumValue HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls

Index:  0
Name:   sethdown
Type:   REG_SZ
Length: 66
Data:   C:\WINDOWS\system32\clipmote.dll

Dai rapporti trovato in rete concludo che il gancio AppCertDlls è una parte normale del sistema operativo Windows, e non qualche estensione canaglia. Se è così, è un punto di ingresso del virus, in quanto consente di configurare in modo dinamico il malware in un processo.

sembra che in realtà è - e ironicamente - vuole essere una funzione di sicurezza, non dissimile alla mangiatoia sicurezza nella JVM (vedere la mia domanda iniziale). Un programma di utilità di Microsoft chiamato appsec.exe è segnalato per utilizzare questa chiave. La funzione che viene poi chiamato la DLL "sicurezza" che viene caricato è CreateProcessNotify, come citato sopra. Da quello che ho capito, si assume che solo dire sì o no -., Ma può fare ciò che vuole

Nel mio caso e la singola istanza di esecuzione ls.exe che ho analizzato, ha creato cinque fili. Caricano o cercano di caricare altre DLL e interagire con il Registro di sistema. E chissà che altro.

Se qualcuno sa di più su questo meccanismo pericoloso, sono tutto orecchie.

Ecco cosa ho trovato su AppCertDlls:

menzione presto 01/2007 (Re 5 : ?????????? ??????? ??????????)

AppCertDlls riferito lo Sysinternals forum (Autoruns), 10/2007

Chi AppCertDlls - virus citato 01/2008

  

Ma la stessa Microsoft ampiamente uso questo   caratteristica, esattamente, è stato di fatto   concepito come la cosa "di una volta".   Solo per l'uso come - modo per limitare la   le applicazioni che possono essere eseguite sotto la   Terminal Server 2000. - Andrew Worobow

maggiori dettagli sulla chiave AppCertDlls e CreateProcessNotify, 01/2008

06/2010 rapporto infezione fornendo alcuni dettagli

Il malware ha cercato di rubare informazioni bancarie (e denaro, ovviamente), ma forse potrebbe essere configurato per fare altri esimoIngs, anche. C'erano voci aggiuntive di registro sotto HKEY_CURRENT_USER\Software\AppDataLow\{some GUID here}. Deve aver fatto qualche screen scraping mentre stavo facendo online banking; sapeva TAN usati. Mi ricordo che una volta ho avuto l'impressione che la mia banca è stato violato quando poco prima o poco (probabilmente) dopo il login Ho visto una schermata che chiede per una ventina di TAN in una sola volta. WTF, ho pensato, il browser ha ottenuto l'URL sbagliato, e ho chiuso la finestra. Dovrei avere essere più interessati. Non avrei mai pensato che l'intera questione sia così pericoloso. Fortunatamente, nessun danno. Solo fortunato, immagino.

Ecco un elenco delle stringhe significative dall'aspetto ho trovato dentro il virus:

  • client.dll
  • EAPSFILT.dll
  • KERNEL32.dll

Credo che i primi due potrebbero essere altre librerie virus si prova a caricare.

  • _aullshr
  • CompareStringA
  • CreateEventA
  • CreateFileA
  • CreateFileMappingA
  • CreateProcessNotify
  • CtfImmIsCiceroStartedInThread
  • CtfImmTIMActivate
  • DllCleanupServer
  • DllStartupServer
  • ExitProcess
  • GetThreadContext
  • ImmDisableIme
  • ImmDisableIME
  • ImmGetConversionListA
  • ImmGetVirtualKey
  • ImmRegisterWordA
  • ImmSetCandidateWindow
  • InterlockedExchangeAdd
  • iswlower
  • lstrcmpA
  • MapViewOfFile
  • memset
  • OpenThread
  • ReadFile
  • RealDriveType
  • RegenerateUserEnvironment
  • RestartDialog
  • SetFilePointer
  • Sleep
  • strchr
  • TerminateThread
  • UnmapViewOfFile
  • vDbgPrintExWithPrefix
  • VirtualQueryEx
  • WaitForMultipleObjects

La funzione Cicero sembrava canaglia a me, ma è parte della C:\WINDOWS\system32\imm32.dll, "Windows IMM32 Client API Library" -. Qualunque cosa sia

I corse sfc.exe, Microsoft "file di sistema". Farà più controllo sul mio file di programma. E ottenere un virus scanner. Raccomandazioni il benvenuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top