In questa guida cercheremo di risolvere il classico errore di windows impossibile trovare il punto di ingresso della procedura SetDefaultDllDirectories nella libreria di collegamento dinamico Kernel32.dll
Questo errore si verifica quando si tenta di eseguire determinati programmi su versioni di Windows precedenti a Windows 8 e Windows Server 2012:
A volte il messaggio menziona AddDllDirectory o RemoveDllDirectory invece di SetDefaultDllDirectories. In Windows Vista, Windows Server 2008, Windows 7 e Windows Server 2008 R2 viene risolto tramite aggiornamenti. Non esiste una soluzione per Windows prima di Vista, come XP e Server 2003.
Le funzioni AddDllDirectory, RemoveDllDirectory e SetDefaultDllDirectories sono state introdotte nell’aggiornamento KB2533623 rilasciato nel luglio 2011, “Avviso di sicurezza Microsoft: il caricamento di una libreria non sicura potrebbe consentire l’esecuzione di codice in modalità remota “.
Queste funzioni consentono di limitare i percorsi di ricerca delle librerie per combattere le vulnerabilità legate alla rappresentazione di file DLL ( dirottamento DLL ). Windows 8, Windows Server 2012 e versioni successive li includono già.
Se i programmi devono essere compatibili con le versioni precedenti di Windows, Microsoft suggerisce agli sviluppatori di non richiamare direttamente le funzioni, ma di ottenere i loro indirizzi durante l’esecuzione utilizzando GetProcAddress.
Alcuni esempi di programmi non conformi sono l’eseguibile con cui Sony confeziona l’Xperia Companion, l’installer per la versione 0.298 dell’applicazione di chat per videogiochi Discord e l’installazione di whatsapp web per Pc.
Come risolvere questo errore impossibile trovare Kernel32.dll
La soluzione più diretta al messaggio di errore è installare manualmente il pacchetto KB2533623, anche se il consiglio è di applicare tutti gli aggiornamenti importanti che Windows Update offre e, in particolare per Windows 7 e Windows Server 2008 R2, il pacchetto di sicurezza mensile più recente possibile.
- Aggiornamento KB2533623 per Windows Vista x86
- Aggiornamento KB2533623 per Windows Vista x64
- Aggiornamento KB2533623 per Windows 7 x86
- Aggiornamento KB2533623 per Windows 7 x64
I pacchetti di Windows Vista richiedono almeno il Service Pack 1, anche se sarebbe consigliabile avere il Service Pack 2. Non ci sono condizioni speciali in Windows 7 ma si consiglia il Service Pack 1 per continuare a ricevere aggiornamenti importanti.
Esistono pagine di download specifiche per Windows Server 2008 e Windows Server 2008 R2, ma i pacchetti e i requisiti MSU sono identici alle versioni client equivalenti. L’unica differenza è che Windows Server 2008 continua con il supporto e nuovi aggiornamenti anche se il ciclo di vita di Windows Vista è terminato diversi mesi fa.
Le versioni minime di Kernelbase.dll (Windows 7 e Windows Server 2008 R2) e Kernel32.dll che implementano le funzioni AddDllDirectory, RemoveDllDirectory e SetDefaultDllDirectories sono le seguenti.
Windows Vista e Windows Server 2008 Service Pack 1
GDR 6.0.6001.18631
LDR 6.0.6001.22898 Service Pack 2
GDR 6.0.6002.18449
LDR 6.0.6002.22625
Windows 7 e Windows Server 2008 R2 RTM
GDR 6.1.7600.16816
LDR 6.1.7600.20978 Service Pack 1
GDR 6.1.7601.17617
LDR 6.1.7601.21728