# Biblioteques bàsiques de Microsoft Windows

El sistema operatiu Microsoft Windows admet una forma de biblioteques compartides conegudes com a " biblioteca d'enllaços dinàmics ", que són biblioteques de codi que poden ser utilitzades per diversos processos mentre només es carrega una còpia a la memòria. Aquest article ofereix una visió general de les biblioteques bàsiques que s'inclouen amb cada instal·lació moderna de Windows, a sobre de les quals es construeixen la majoria de les aplicacions de Windows.

## Components interns

HAL. DLL és un fitxer de biblioteca en mode nucli i cap programa en mode usuari no pot utilitzar-lo. NTDLL. DLL només l'utilitzen alguns programes, però és una dependència de la majoria de biblioteques Win32 utilitzades pels programes.

### HAL.DLL

La capa d'abstracció de maquinari de Windows (HAL) s'implementa a hal.dll. El HAL implementa una sèrie de funcions que s'implementen de diferents maneres per diferents plataformes de maquinari, que en aquest context es refereix principalment al chipset. Altres components del sistema operatiu poden cridar aquestes funcions de la mateixa manera a totes les plataformes, sense tenir en compte la implementació real.

### NTDLL.DLL

NTDLL.DLL exporta l'API nativa de Windows. L'API nativa és la interfície utilitzada pels components en mode d'usuari del sistema operatiu que s'han d'executar sense suport de Win32 o d'altres subsistemes d'API. La major part d'aquesta API s'implementa a NTDLL. DLL i a la vora superior de ntoskrnl.exe (i les seves variants), i la majoria dels símbols exportats dins d'aquestes biblioteques tenen el prefix Nt, per exemple NtDisplayString. Les API natives també s'utilitzen per implementar moltes de les "API del nucli" o "API base" exportades per KERNEL32.DLL. La gran majoria d'aplicacions de Windows no diuen NTDLL. DLL directament.

## API Win32

Les biblioteques d'aquesta secció implementen cadascuna de les diferents subconjunts de l'API Win32.

### KERNEL32.DLL

NUCLEI32. DLL exposa a les aplicacions la majoria de les API base de Win32, com ara la gestió de memòria, les operacions d'entrada/sortida (I/O), la creació de processos i fils i les funcions de sincronització. Molts d'aquests s'implementen dins de KERNEL32. DLL cridant a les funcions corresponents a l'API nativa, exposades per NT DLL.DLL.

### GDI32. DLL

GDI32. DLL exporta funcions de la interfície de dispositiu gràfic (GDI) que realitzen funcions de dibuix primitives per a la sortida a pantalles de vídeo i impressores. S'utilitza, per exemple, a la versió XP de Paint. Les aplicacions criden directament a funcions GDI per realitzar dibuixos de baix nivell (línia, rectangle, el·lipse), sortida de text, gestió de fonts i funcions similars.

### USER32.DLL

USUARI32. DLL implementa el component USUARI de Windows que crea i manipula els elements estàndard de la interfície d'usuari de Windows, com ara l'escriptori, les finestres i els menús. Així, permet que els programes implementin una interfície gràfica d'usuari (GUI) que coincideixi amb l'aspecte i la sensació de Windows. Els programes criden a funcions des de l'USUARI de Windows per realitzar operacions com ara crear i gestionar finestres, rebre missatges de finestra (que són majoritàriament entrades de l'usuari com esdeveniments de ratolí i teclat, però també notificacions del sistema operatiu), mostrar text en una finestra i mostrar missatges. caixes.

### COMDLG32.DLL

COMDLG32. DLL , la biblioteca de quadres de diàleg comuns, implementa una gran varietat de quadres de diàleg de Windows destinats a realitzar el que Microsoft considera "tasques comunes d'aplicació". A partir del llançament de Windows Vista, Microsoft considera que els quadres de diàleg "Obrir" i "Desa com" proporcionats per aquesta biblioteca estan obsolets i substituïts per l'"API de diàleg d'elements comuns".

### WS2_32.DLL

WS2_32. DLL implementa l'API Winsock, que proporciona funcions de xarxa TCP/IP i proporciona una compatibilitat parcial i trencada amb altres API de xarxa. wsock.dll i wsock32.dll són versions anteriors per a la compatibilitat amb Win3.11 i Win95.

### ADVAPI32.DLL

ADVAPI32. DLL , el Advanced Windows 32 Base API DLL, proporciona trucades de seguretat i funcions per manipular el Registre de Windows.

### NETAPI32. DLL

NETAPI32. DLL proporciona funcions per consultar i gestionar interfícies de xarxa.

### OLE32. DLL

OLE32. DLL proporciona el model d'objectes de components, així com l'enllaç i la incrustació d'objectes.

## Biblioteques en temps d'execució
### MSVCRT.DLL, MSVCP*.DLL and CRTDLL.DLL

MSVCRT. DLL és la biblioteca estàndard C per al compilador Visual C++ (MSVC) de la versió 4.2 a la 6.0. Proporciona programes compilats per aquestes versions de MSVC amb la majoria de les funcions estàndard de la biblioteca C. Aquests inclouen la manipulació de cadenes, l'assignació de memòria, les trucades d'entrada/sortida d'estil C i altres. MSVCP*. DLL és la biblioteca C++ corresponent.
S'ha enviat amb versions de Windows des de Windows 95 OSR2.5 per a l'ús d'altres components de Windows; versions anteriors enviades amb el CRTDLL. En lloc d'això, biblioteca DLL. En versions anteriors de Windows, programes que s'enllaçaven amb MSVCRT. S'esperava que DLL instal·lés una còpia compatible a la carpeta System32, però això va contribuir a la DLL Hell perquè molts instal·ladors no van poder comprovar la versió de la biblioteca amb la versió instal·lada abans de substituir-la.

## Referències

* ↑ Blunden, Bill. The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System (en anglès). Jones & Bartlett Learning, 2009, p. 101. ISBN 978-1-59822-061-2.
* ↑ Eilam, Eldad. Reversing: Secrets of Reverse Engineering (en anglès). John Wiley & Sons, 2011, p. 68–69. ISBN 978-1-118-07976-8.
* ↑ «Inside Native Windows Applications» (en anglès). Microsoft. Arxivat de l'original el 2010-09-12. [Consulta: 14 desembre 2011].
* ↑ Russinovich, Mark A.. Windows® Internals (en anglès). O'Reilly Media, 2009, p. 136. ISBN 978-0-7356-3796-2.
* ↑ Marceau, Carla. «Modular behavior profiles in systems with shared libraries». A: Neng, Peng. Information and Communications Security: 8th International Conference, ICICS 2006 – Raleigh, NC, USA, December 4–7, 2006 – proceedings (en anglès). Springer, 2006, p. 371. ISBN 978-3-540-49496-6.
* ↑ «Common Dialog Box Library (Windows)» (en anglès). msdn.microsoft.com. [Consulta: 25 octubre 2017].
* ↑ Microsoft. «How RPC Works: Remote Procedure Call (RPC) | Microsoft Learn» (en anglès). [Consulta: 11 setembre 2023].