Knowledge (XXG)

Dynamic-link library

Source 📝

504:
sufficient for all the processes. However, in newer versions of Windows which use separate address spaces for each program, it is only possible to use the same relocated copy of the DLL in multiple programs if each program has the same virtual addresses free to accommodate the DLL's code. If some programs (or their combination of already-loaded DLLs) do not have those addresses free, then an additional physical copy of the DLL's code will need to be created, using a different set of relocated entry points. If the physical memory occupied by a code section is to be reclaimed, its contents are discarded, and later reloaded directly from the DLL file as necessary.
309:. These extra layers on top of DOS had to be shared across all running Windows programs, not just to enable Windows to work in a machine with less than a megabyte of RAM, but to enable the programs to co-operate with each other. The code in GDI needed to translate drawing commands to operations on specific devices. On the display, it had to manipulate pixels in the frame buffer. When drawing to a printer, the API calls had to be transformed into requests to a printer. Although it could have been possible to provide hard-coded support for a limited set of devices (like the 335:, sections of code are simply added to the calling program when its executable is built at the "linking" phase; if two programs call the same routine, the routine is included in both the programs during the linking stage of the two. With dynamic linking, shared code is placed into a single, separate file. The programs that call this file are connected to it at run time, with the operating system (or, in the case of early versions of Windows, the OS-extension), performing the binding. 608:
DLLs of their respective Windows release. A good opportunity to bind an application's imports to its target environment is during the application's installation. This keeps the libraries "bound" until the next OS update. It does, however, change the checksum of the executable, so it is not something that can be done with signed programs, or programs that are managed by a configuration management tool that uses checksums (such as
527:), all of its code sections are marked as read and write, and will be unshared. Read-and-write code sections, much like private data sections, are private to each process. Thus DLLs with shared data sections should not be compressed if they are intended to be used simultaneously by multiple programs, since each program instance would have to carry its own copy of the DLL, resulting in increased memory consumption. 4697: 4708: 516:; namely, one process can corrupt the shared data, which will likely cause all other sharing processes to behave undesirably. For example, a process running under a guest account can in this way corrupt another process running under a privileged account. This is an important reason to avoid the use of shared sections in DLLs. 1034:'Example.lib' file must be included (assuming that Example.dll is generated) in the project before static linking. The file 'Example.lib' is automatically generated by the compiler when compiling the DLL. Not executing the above statement would cause linking error as the linker would not know where to find the definition of 781:
When creating DLLs in VB, the IDE will only allow creation of ActiveX DLLs, however methods have been created to allow the user to explicitly tell the linker to include a .DEF file which defines the ordinal position and name of each exported function. This allows the user to create a standard Windows
607:
Bound executables load somewhat faster if they are run in the same environment that they were compiled for, and exactly the same time if they are run in a different environment, so there is no drawback for binding the imports. For example, all the standard Windows applications are bound to the system
554:
Linking to dynamic libraries is usually handled by linking to an import library when building or linking to create an executable file. The created executable then contains an import address table (IAT) by which all DLL function calls are referenced (each referenced DLL function contains its own entry
369:
In Windows 1.x, 2.x and 3.x, all Windows applications shared the same address space as well as the same memory. A DLL was only loaded once into this address space; from then on, all programs using the library accessed it. The library's data was shared across all the programs. This could be used as an
676:
Normally, an application that is linked against a DLL’s import library will fail to start if the DLL cannot be found, because Windows will not run the application unless it can find all of the DLLs that the application may need. However an application may be linked against an import library to allow
603:
saves the timestamp and checksum of the DLL to which the import is bound. At run-time, Windows checks to see if the same version of library is being used, and if so, Windows bypasses processing the imports. Otherwise, if the library is different from the one which was bound to, Windows processes the
357:
Another benefit of modularity is the use of generic interfaces for plug-ins. A single interface may be developed which allows old as well as new modules to be integrated seamlessly at run-time into pre-existing applications, without any modification to the application itself. This concept of dynamic
2157:
commonly known as DLL hijacking, DLL spoofing, DLL preloading or binary planting, many programs will load and execute a malicious DLL contained in the same folder as a data file opened by these programs. The vulnerability was discovered by Georgi Guninski in 2000. In August 2010 it gained worldwide
2144:
in DLL and EXE files. It provides mechanisms to locate and version those files as well as a language-independent and machine-readable description of the interface. Hosting COM objects in a DLL is more lightweight and allows them to share resources with the client process. This allows COM objects to
583:
Each function exported by a DLL is identified by a numeric ordinal and optionally a name. Likewise, functions can be imported from a DLL either by ordinal or by name. The ordinal represents the position of the function's address pointer in the DLL Export Address table. It is common for internal
503:
as it is loaded, fixing addresses for all its entry points at locations which are free in the memory space of the first process to load the DLL. In older versions of Windows, in which all running processes occupied a single common address space, a single copy of the DLL's code would always be
854:
file must be placed in one of the directories listed in the PATH environment variable, in the default system directory, or in the same directory as the program using it. COM server DLLs are registered using regsvr32.exe, which places the DLL's location and its globally unique ID
462:
The DLL technology allows for an application to be modified without requiring consuming components to be re-compiled or re-linked. A DLL can be replaced so that the next time the application runs it uses the new DLL version. To work correctly, the DLL changes must maintain
448:
The executable code of a DLL runs in the memory space of the calling process and with the same access permissions, which means there is little overhead in their use, but also that there is no protection for the calling program if the DLL has any sort of bug.
677:
delayed loading of the dynamic library. In this case, the operating system will not try to find or load the DLL when the application starts; instead, a stub is included in the application by the linker which will try to find and load the DLL through
584:
functions to be exported by ordinal only. For most Windows API functions only the names are preserved across different Windows releases; the ordinals are subject to change. Thus, one cannot reliably import Windows API functions by their ordinals.
338:
For those early versions of Windows (1.0 to 3.11), the DLLs were the foundation for the entire GUI. As such, display drivers were merely DLLs with a .DRV extension that provided custom implementations of the same drawing API through a unified
547:. The usual way to tell an import library from a proper static library is by size: the import library is much smaller as it only contains symbols referring to the actual DLL, to be processed at link-time. Both nevertheless are Unix 2996: 591:
can be used to find a function. The index of the found name is then used to look up the ordinal in the Export Ordinal table. In 16-bit Windows, the name table was not sorted, so the name lookup overhead was much more noticeable.
612:
checksums) to manage file versions. As more recent Windows versions have moved away from having fixed addresses for every loaded library (for security reasons), the opportunity and value of binding an executable is decreasing.
1225:
the current working directory is looked up before the system library directories), and thus to a malicious version of the library. See the reference for Microsoft's guidance on safe library loading: one should use
2320:
The import library is a regular UNIX-like .a library, but it only contains the tiny bit of information needed to tell the OS how the program interacts with ("imports") the dll. This information is linked into
507:
In contrast to code sections, the data sections of a DLL are usually private; that is, each process using the DLL has its own copy of all the DLL's data. Optionally, data sections can be made shared, allowing
574:
toolchain can generate import libraries and link to them, it is faster to link to the DLL directly. An experimental tool in MinGW called genlib can be used to generate import libs with MSVC-style symbols.
689:, which may be caught and handled appropriately. If the application does not handle the exception, it will be caught by the operating system, which will terminate the program with an error message. 470:
Even the operating system can be upgraded since it is exposed to the applications via DLLs. System DLLs can be replaced so that the next time the applications run, they use the new system DLLs.
382:, every process ran in its own address space. While the DLL code may be shared, the data is private except where shared data is explicitly requested by the library. That said, large swathes of 346:
This notion of building up the operating system from a collection of dynamically loaded libraries is a core concept of Windows that persists as of 2015. DLLs provide the standard benefits of
2505: 2976: 2158:
publicity after ACROS Security rediscovered it and many hundreds of programs were found vulnerable. Programs that are run from unsafe locations, i.e. user-writable folders like the
2924: 354:. Modularity allows changes to be made to code and data in a single self-contained DLL shared by several applications without any change to the applications themselves. 491:
The code in a DLL is usually shared among all the processes that use the DLL; that is, they occupy a single place in physical memory, and do not take up space in the
2791: 2737:"McAfee KB - McAfee Security Bulletin: Security patch for several McAfee installers and uninstallers (CVE-2015-8991, CVE-2015-8992, and CVE-2015-8993) (TS102462)" 3712: 3727: 328:
to load different Windows programs, and for these programs to invoke API calls from the shared USER and GDI libraries. That concept was "dynamic linking".
3892: 2969: 343:
interface (DDI), and the Drawing (GDI) and GUI (USER) APIs were merely the function calls exported by the GDI and USER, system DLLs with .EXE extension.
2664: 587:
Importing functions by ordinal provides only slightly better performance than importing them by name: export tables of DLLs are ordered by name, so a
2939: 2555: 562:, combining both the Windows DLL suffix and the Unix ar suffix. The file format is similar, but the symbols used to mark the imports are different ( 685:
when one of its functions is called. If the DLL cannot be found or loaded, or the called function does not exist, the application will generate an
3549: 2934: 488:. Each section has its own set of attributes, such as being writable or read-only, executable (for code) or non-executable (for data), and so on. 2449: 2944: 2580: 599:
an executable to a specific version of a DLL, that is, to resolve the addresses of imported functions at compile-time. For bound imports, the
4583: 2962: 2494: 4712: 2985: 2145:
implement powerful back-ends to simple GUI front ends such as Visual Basic and ASP. They can also be programmed from scripting languages.
431: 289:(GUI) could multitask and be maximally responsive. All operating-system level operations were provided by the underlying operating system: 2686: 3962: 3602: 3186: 3021: 2293: 555:
in the IAT). At run-time, the IAT is filled with appropriate addresses that point directly to a function in the separately loaded DLL.
4134: 4043: 3559: 3191: 1038:. The DLL file 'Example.dll' may also have to be copied to the location where the .exe file would be generated by the following code: 269:
Since they have the same format, an EXE can be used as a DLL. Consuming code can load an EXE via the same mechanism as loading a DLL.
2865: 2850: 2761: 294: 2260: 1213:, since example.dll can be resolved to a place unintended by the author (unless explicitly excluded the application directory goes 846:
file (import library) is used to link against a DLL at compile-time; it is not necessary for run-time linking. Unless the DLL is a
1206:
The following examples show how to use the run-time loading and linking facilities using language-specific Windows API bindings.
798:
which allow functions to be specified as imported or exported directly in the C++ code; these have been adopted by other Windows
513: 173:, but can have any file extension. Developers can choose to use a file extension that describes the content of the file such as 4743: 3882: 3862: 3825: 3787: 3772: 2819:"oss-sec: CVE-2016-1281: TrueCrypt and VeraCrypt Windows installers allow arbitrary code execution with elevation of privilege" 876:
The following examples show how to use language-specific bindings to import symbols for linking against a DLL at compile-time.
4733: 4628: 4210: 3737: 863:
to find its location or create an instance of the COM object indirectly using its class identifier and interface identifier.
512:
via this shared memory area. However, because user restrictions do not apply to the use of shared DLL memory, this creates a
3752: 417:
describes the bad behavior of an application when the wrong version of a DLL is consumed. Mitigation strategies include:
398:
microprocessor when launched, and ultimately limited the stability and scalability of the DOS-based versions of Windows.
266:
to start execution. Windows provides a utility program (RUNDLL.EXE/RUNDLL32.EXE) to execute a function exposed by a DLL.
4593: 4462: 4149: 4139: 4013: 3917: 3777: 3134: 3089: 2929: 2530: 4738: 4701: 4069: 4028: 3927: 3782: 3579: 3294: 3244: 543:, the primary dynamic library for Windows's base functions such as file creation and memory management, is linked via 509: 371: 262:
The main difference between DLL and EXE is that a DLL cannot be run directly since the operating system requires an
4291: 4171: 3877: 3376: 3016: 3009: 3004: 38: 2373: 4623: 4588: 4018: 4008: 3947: 3857: 3747: 3717: 3366: 3064: 2154: 2141: 496: 298: 3988: 3932: 3912: 3757: 3526: 3411: 810:
before a function declaration. Note that when C functions are accessed from C++, they must also be declared as
799: 351: 314: 286: 104: 3301: 2949: 4573: 4568: 4412: 4407: 4367: 4327: 4277: 4023: 3767: 3762: 3637: 3612: 3574: 3544: 3494: 3306: 3229: 3154: 3074: 3049: 2656: 1234:
to remove both the application directory and the current working directory from the DLL search path, or use
803: 74: 30:
This article is about the OS/2 and Windows implementation. For dynamic linking of libraries in general, see
2606:"Double clicking on MS Office documents from Windows Explorer may execute arbitrary programs in some cases" 4553: 4517: 4129: 4114: 3872: 3830: 3722: 3652: 3569: 3554: 3149: 2137: 847: 520: 500: 464: 359: 310: 4682: 4502: 4447: 4387: 4372: 4181: 3852: 3807: 3664: 3617: 437: 2736: 4667: 4662: 4507: 4477: 4442: 4332: 4038: 4033: 3937: 3887: 3815: 3702: 3289: 3254: 3201: 3139: 2919: 427: 317:), Microsoft chose a different approach. GDI would work by loading different pieces of code, called " 4608: 4467: 4422: 4397: 4352: 4298: 4097: 3952: 3835: 3284: 3269: 3209: 3129: 3099: 2186: 782:
DLL using Visual Basic (Version 6 or lower) which can be referenced through a "Declare" statement.
484: 293:. All higher-level services were provided by Windows Libraries "Dynamic Link Library". The Drawing 248: 2432:"A new CWDIllegalInDllSearch registry entry is available to control the DLL search path algorithm" 324:
The same architectural concept that allowed GDI to load different device drivers also allowed the
4613: 4563: 4337: 4256: 4242: 4161: 3867: 3707: 3674: 3647: 3642: 3316: 3219: 3214: 3114: 2196: 2191: 686: 600: 155: 50: 831:
file is processed by the linker, rather than the compiler, and thus it is not specific to C++.
823: 4677: 4603: 4558: 4457: 4452: 4427: 4382: 4347: 4217: 3521: 3331: 3164: 2861: 2846: 2175: 278: 133: 2285: 4618: 4527: 4362: 4305: 4263: 4124: 4092: 4048: 4003: 3922: 3682: 3479: 3356: 3346: 3109: 3104: 860: 774:
When importing DLL functions through declarations, VB will generate a run-time error if the
661: 375: 198: 151: 140: 4654: 4537: 4512: 4497: 4487: 4437: 4432: 4186: 3820: 3536: 3401: 3391: 3336: 3321: 3179: 3069: 2181: 285:. Every program was meant to co-operate by yielding the CPU to other programs so that the 147: 2913: 2896: 2890: 2884: 2878: 2769: 2475: 2406: 2393: 2351: 2264: 2242: 1223:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\CWDIllegalInDLLSearch
4144: 3687: 3499: 3489: 3474: 3406: 3274: 3249: 3224: 3174: 3144: 3054: 2903:
Microsoft Security Advisory: Insecure library loading could allow remote code execution
2631:"Binary Planting - The Official Web Site of a Forgotten Vulnerability . ACROS Security" 2216: 2211: 697: 421: 347: 332: 256: 167: 126: 109: 31: 660:
The procedure for explicit run-time linking is the same in any language that supports
4727: 4633: 4492: 4392: 3732: 3692: 3469: 3444: 3436: 3371: 3239: 3039: 2333: 1219:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode
778:
file cannot be found. The developer can catch the error and handle it appropriately.
588: 340: 325: 318: 282: 186: 374:, or it could accidentally corrupt the different programs. With the introduction of 4402: 4357: 4284: 4249: 3957: 3907: 3697: 3449: 3396: 3361: 3279: 3259: 3079: 3059: 2201: 791: 756: 728: 571: 540: 406:
Although the DLL technology is core to the Windows architecture, it has drawbacks.
2902: 2431: 4472: 4417: 4322: 4176: 4064: 3942: 3797: 3589: 3564: 3159: 2907: 2206: 739:
keyword is used in the function declaration to signal the DLL name, followed by
665: 621:
DLL files may be explicitly loaded at run-time, a process referred to simply as
479: 395: 263: 228: 84: 2954: 2178:, a utility which displays exported and imported functions of DLL and EXE files 859:) in the registry. Programs can then use the DLL by looking up its GUID in the 558:
In Cygwin/MSYS and MinGW, import libraries are conventionally given the suffix
4377: 4201: 3742: 3632: 3506: 3426: 3351: 3169: 391: 387: 383: 379: 232: 62: 2711: 17: 3998: 3993: 3627: 3516: 3464: 3234: 548: 492: 130: 97: 27:
Microsoft's implementation of the shared library concept in Windows and OS/2
2315: 2024:# The following "restype" method specification is needed to make 4578: 4482: 4342: 4102: 3967: 3597: 3454: 3341: 3326: 3264: 3124: 3084: 2920:
Microsoft Portable Executable and Common Object File Format Specification
2818: 2605: 2221: 414: 208: 4598: 4532: 4270: 4156: 4119: 4107: 3792: 3511: 3484: 3459: 3421: 3119: 3044: 814:
in C++ code, to inform the compiler that the C linkage should be used.
693: 394:
were built from 16-bit libraries, which limited the performance of the
363: 178: 4672: 4522: 4191: 3972: 3897: 721:. At the end of the file, the functions to be exported are listed in 290: 252: 244: 240: 821:
attributes, they may be listed in IMPORT or EXPORTS section of the
795: 759:(VB), only run-time linking is supported; but in addition to using 4638: 4074: 3902: 3607: 3381: 3094: 2792:"ScanNow DLL Search Order Hijacking Vulnerability and Deprecation" 1242:
to remove the current working directory from the DLL search path.
654: 535:
Like static libraries, import libraries for DLLs are noted by the
2630: 4166: 3840: 3659: 3622: 2556:"More information about the DLL Preloading remote attack vector" 2166:
directory, are almost always susceptible to this vulnerability.
856: 137: 2958: 2687:"Dev to Mozilla: Please dump ancient Windows install processes" 2450:"Secure loading of libraries to prevent DLL preloading attacks" 1983:
The Python ctypes binding will use POSIX API on POSIX systems.
696:, allowing the application to perform additional processing or 4084: 3416: 3386: 3311: 2940:
More information about the DLL Preloading remote attack vector
2140:(COM) defines a binary standard to host the implementation of 637:
API function is used to look up exported symbols by name, and
609: 524: 236: 239:), but different versions of Windows use different formats. 735:
files to import functions from DLLs; to link to a DLL, the
2027:# Python understand what type is returned by the function. 700:
when the DLL is loaded and/or any DLL function is called.
2935:
MS09-014: Addressing the Safari Carpet Bomb vulnerability
692:
The delayed loading mechanism also provides notification
2493:
Björklund, Andreas; Klövstedt, Johan; Westergren, Sven.
817:
Besides specifying imported or exported functions using
2581:"An update on the DLL-preloading remote attack vector" 641:– to unload the DLL. These functions are analogous to 2502:
Information Technology Department, Uppsala University
2945:
An update on the DLL-preloading remote attack vector
1209:
Note that all of the four samples are vulnerable to
4651: 4546: 4315: 4234: 4227: 4200: 4083: 4057: 3981: 3806: 3673: 3588: 3535: 3435: 3200: 3030: 1239: 1235: 1231: 1227: 192:A DLL that contains only resources can be called a 103: 93: 83: 73: 61: 49: 802:and C++ compilers, including Windows versions of 434:because they offer isolation between applications 2712:"Gpg4win - Security Advisory Gpg4win 2015-11-25" 794:(MSVC) provides several extensions to standard 358:extensibility is taken to the extreme with the 2970: 68:application/vnd.microsoft.portable-executable 8: 44: 4707: 4231: 2977: 2963: 2955: 2374:"Creating a Windows DLL with Visual Basic" 499:for its DLLs; instead, the code undergoes 321:", to work with different output devices. 79:com.microsoft.windows-dynamic-link-library 2860:. Addison-Wesley Developers Press, 1997. 2843:Windows System Programming Third Edition 2657:"Carpet Bombing and Directory Poisoning" 2286:"Understanding the Import Address Table" 1859:"ERROR: unable to find DLL function 1055:// Import function that adds two numbers 898:// import function that adds two numbers 2263:. Microsoft Corporation. Archived from 2233: 426:Virtualization-based solutions such as 301:(GDI), was implemented in a DLL called 2930:Carpet Bombing and Directory Poisoning 2352:"Linker Support for Delay-Loaded DLLs" 1217:system library locations, and without 43: 4584:Next-Generation Secure Computing Base 2925:Microsoft specification for dll files 2667:from the original on November 7, 2023 2661:Carnegie Mellon University - SEI Blog 2511:from the original on November 7, 2023 2296:from the original on November 7, 2023 806:. These extensions use the attribute 743:to name the symbol (if different) or 7: 704:Compiler and language considerations 432:Microsoft Application Virtualization 3713:Distributed Transaction Coordinator 2655:Dormann, Will (September 4, 2008). 2407:"Dynamic-link library search order" 2247:Microsoft Developer Network Library 771:of imported functions are allowed. 4044:User Interface Privilege Isolation 1210: 834:DLL compilation will produce both 519:If a DLL is compressed by certain 281:ran programs together in a single 75:Uniform Type Identifier (UTI) 25: 2897:Dynamic-Link Library Search Order 2396:, Using extern to Specify Linkage 668:rather than language constructs. 4706: 4696: 4695: 3773:Remote Differential Compression 1772:"ERROR: unable to load DLL 1202:Using explicit run-time linking 482:, DLL files are organized into 231:of a DLL is the same as for an 4629:Windows System Assessment Tool 2914:Dynamic-Link Library Functions 2476:"Component Object Model (COM)" 2243:"Creating a Resource-Only DLL" 827:file used by the project. The 713:In a source file, the keyword 1: 2891:Dynamic-Link Library Security 579:Symbol resolution and binding 539:file extension. For example, 331:In a conventional non-shared 203:, sometimes having extension 3918:Open XML Paper Specification 3778:Remote Installation Services 2986:Microsoft Windows components 2762:"fsc-2015-4 - F-Secure Labs" 2372:Petrusha, Ron (2005-04-26). 1367:"The result was: " 4070:Windows Subsystem for Linux 4029:Mandatory Integrity Control 3783:Windows Deployment Services 3580:Wireless Zero Configuration 2411:Microsoft Developer Network 2117:"The result was:" 625:by Microsoft, by using the 510:inter-process communication 372:inter-process communication 4760: 4172:Universal Windows Platform 3878:Kernel Transaction Manager 3863:Hardware Abstraction Layer 3560:Multimedia Class Scheduler 1006:'The result was: ' 664:, since it depends on the 211:library having extensions 39:Dynamically loaded library 36: 29: 4691: 4624:Windows Services for UNIX 4009:Data Execution Prevention 3858:Graphics Device Interface 3748:Network Access Protection 3367:Remote Desktop Connection 2992: 2910:on Microsoft support site 2495:"DLL Spoofing in Windows" 2316:"Building and Using DLLs" 1625:// DLL function signature 617:Explicit run-time linking 604:imports in a normal way. 497:position-independent code 313:display, the HP LaserJet 299:Graphics Device Interface 3989:Security and Maintenance 3933:Security Account Manager 3527:Windows XP visual styles 2845:. Addison-Wesley, 2005. 2531:"DLL Preloading Attacks" 1985: 1946:"The result was: %f 1610: 1388: 1249: 1228:SetDefaultDllDirectories 1169:"The result was: %f 1040: 883: 623:run-time dynamic linking 315:Printer Command Language 305:, the user interface in 287:graphical user interface 63:Internet media type 37:Not to be confused with 4574:Media Control Interface 4408:Help and Support Center 4024:Kernel Patch Protection 3788:System Resource Manager 3768:Remote Desktop Services 3763:Print Services for UNIX 3545:Service Control Manager 3155:Windows Error Reporting 3075:DirectX Diagnostic Tool 2354:. Microsoft Corporation 2241:Microsoft Corporation. 2018:"Example.dll" 1796:// Get function pointer 1739:"Example.dll" 1270:"Example.dll" 747:to identify the index. 595:It is also possible to 568:__IMPORT_DESCRIPTOR_foo 495:. Windows does not use 362:, the underpinnings of 196:. Examples include the 4744:Windows administration 4554:Desktop Cleanup Wizard 4130:COM Structured storage 3831:Desktop Window Manager 3723:Windows Media Services 2885:Dynamic-Link Libraries 2635:www.binaryplanting.com 2138:Component Object Model 2132:Component Object Model 1826:"AddNumbers" 1246:Microsoft Visual Basic 1211:DLL preloading attacks 848:Component Object Model 751:Microsoft Visual Basic 465:backward compatibility 360:Component Object Model 311:Color Graphics Adapter 277:The first versions of 158:, in any combination. 4734:Computer file formats 4182:Windows Mixed Reality 3853:Enhanced Write Filter 3703:Roaming user profiles 2856:Rector, Brent et al. 2261:"The End of DLL Hell" 1487:'example.dll' 946:'Example.dll' 662:pointers to functions 438:Side-by-side assembly 255:Windows versions use 247:Windows versions use 166:A DLL file often has 4463:Mobile Device Center 4413:Health & Fitness 4211:Solitaire Collection 4039:User Account Control 4034:Protected Media Path 3938:Server Message Block 3888:Logical Disk Manager 3140:System Policy Editor 3125:System Configuration 2879:dllexport, dllimport 1529:'AddNumbers' 867:Programming examples 633:) API function. The 428:Microsoft Virtual PC 119:dynamic-link library 45:Dynamic-link library 4609:Virtual DOS machine 3953:System Idle Process 3928:Resource Protection 3836:Portable Executable 3728:Active DRM Services 3130:System File Checker 3100:Performance Monitor 2950:Load Library Safely 2187:Library (computing) 1400:{$ APPTYPE CONSOLE} 886:{$ APPTYPE CONSOLE} 717:is used instead of 444:Shared memory space 249:Portable Executable 46: 4739:Computer libraries 4614:Windows on Windows 4338:Backup and Restore 4150:Transaction Server 3868:I/O request packet 3708:Folder redirection 3377:Speech Recognition 3135:System Information 3090:Management Console 2798:. 21 December 2015 2741:service.mcafee.com 2480:msdn.microsoft.com 2197:Loader (computing) 2192:Linker (computing) 1922:// Unload DLL file 1562:'1 + 2 = ' 850:(COM) server, the 521:executable packers 146:A DLL can contain 105:Container for 51:Filename extension 4721: 4720: 4647: 4646: 4604:Video for Windows 4559:Games for Windows 4428:Internet Explorer 3522:Windows Spotlight 3165:Windows Installer 2858:Win32 Programming 2817:Team, VeraCrypt. 2691:theregister.co.uk 2474:Satran, Michael. 2454:Microsoft Support 2436:Microsoft Support 2176:Dependency Walker 1937:// Display result 1895:// Call function. 1616:<windows.h> 1046:<windows.h> 872:Using DLL imports 474:Memory management 370:indirect form of 279:Microsoft Windows 115: 114: 94:Developed by 16:(Redirected from 4751: 4710: 4709: 4699: 4698: 4619:Windows SideShow 4398:Food & Drink 4292:Spider Solitaire 4232: 4125:ActiveX Document 4093:Active Scripting 4049:Windows Firewall 4004:Credential Guard 3683:Active Directory 3480:Indexing Service 3110:Resource Monitor 3105:Recovery Console 2979: 2972: 2965: 2956: 2834: 2833: 2831: 2829: 2814: 2808: 2807: 2805: 2803: 2788: 2782: 2781: 2779: 2777: 2768:. Archived from 2766:www.f-secure.com 2758: 2752: 2751: 2749: 2747: 2733: 2727: 2726: 2724: 2722: 2708: 2702: 2701: 2699: 2697: 2683: 2677: 2676: 2674: 2672: 2652: 2646: 2645: 2643: 2641: 2627: 2621: 2620: 2618: 2616: 2610:www.guninski.com 2602: 2596: 2595: 2593: 2591: 2577: 2571: 2570: 2568: 2566: 2552: 2546: 2545: 2543: 2541: 2527: 2521: 2520: 2518: 2516: 2510: 2499: 2490: 2484: 2483: 2471: 2465: 2464: 2462: 2460: 2446: 2440: 2439: 2428: 2422: 2421: 2419: 2417: 2403: 2397: 2391: 2385: 2384: 2382: 2381: 2376:. O'Reilly Media 2369: 2363: 2362: 2360: 2359: 2348: 2342: 2341: 2338:ld documentation 2330: 2324: 2323: 2312: 2306: 2305: 2303: 2301: 2282: 2276: 2275: 2273: 2272: 2257: 2251: 2250: 2238: 2127: 2124: 2121: 2118: 2115: 2112: 2109: 2106: 2103: 2100: 2097: 2094: 2091: 2088: 2085: 2082: 2079: 2076: 2073: 2070: 2067: 2064: 2061: 2058: 2055: 2052: 2049: 2046: 2043: 2040: 2037: 2034: 2031: 2028: 2025: 2022: 2019: 2016: 2013: 2010: 2007: 2004: 2001: 1998: 1995: 1992: 1989: 1974: 1971: 1968: 1965: 1962: 1959: 1956: 1953: 1950: 1947: 1944: 1941: 1938: 1935: 1932: 1929: 1926: 1923: 1920: 1917: 1914: 1911: 1908: 1905: 1902: 1899: 1896: 1893: 1890: 1887: 1884: 1881: 1878: 1875: 1872: 1869: 1866: 1863: 1860: 1857: 1854: 1851: 1848: 1845: 1842: 1839: 1836: 1833: 1830: 1827: 1824: 1821: 1818: 1815: 1812: 1809: 1806: 1803: 1800: 1797: 1794: 1791: 1788: 1785: 1782: 1779: 1776: 1773: 1770: 1767: 1764: 1761: 1758: 1755: 1752: 1749: 1746: 1743: 1740: 1737: 1734: 1731: 1728: 1725: 1722: 1719: 1718:// Load DLL file 1716: 1713: 1710: 1707: 1704: 1701: 1698: 1695: 1692: 1689: 1686: 1683: 1680: 1677: 1674: 1671: 1668: 1665: 1662: 1659: 1656: 1653: 1650: 1647: 1644: 1641: 1638: 1635: 1632: 1629: 1626: 1623: 1620: 1617: 1614: 1602: 1599: 1596: 1593: 1590: 1587: 1584: 1581: 1578: 1575: 1572: 1569: 1566: 1563: 1560: 1557: 1554: 1551: 1548: 1545: 1542: 1539: 1536: 1533: 1530: 1527: 1524: 1521: 1518: 1515: 1512: 1509: 1506: 1503: 1500: 1497: 1494: 1491: 1488: 1485: 1482: 1479: 1476: 1473: 1470: 1467: 1464: 1461: 1458: 1455: 1452: 1449: 1446: 1443: 1440: 1437: 1434: 1431: 1428: 1425: 1422: 1419: 1416: 1413: 1410: 1407: 1404: 1401: 1398: 1395: 1392: 1380: 1377: 1374: 1371: 1368: 1365: 1362: 1359: 1356: 1353: 1350: 1347: 1344: 1341: 1338: 1335: 1332: 1329: 1326: 1323: 1320: 1317: 1314: 1311: 1308: 1305: 1302: 1299: 1296: 1293: 1290: 1287: 1284: 1281: 1278: 1275: 1271: 1268: 1265: 1262: 1259: 1256: 1253: 1241: 1237: 1236:SetDllDirectoryW 1233: 1229: 1224: 1220: 1197: 1194: 1191: 1188: 1185: 1182: 1179: 1176: 1173: 1170: 1167: 1164: 1161: 1158: 1155: 1152: 1149: 1146: 1143: 1140: 1137: 1134: 1131: 1128: 1125: 1122: 1119: 1116: 1113: 1110: 1107: 1104: 1101: 1098: 1095: 1092: 1089: 1086: 1083: 1080: 1077: 1074: 1071: 1068: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1044: 1037: 1025: 1022: 1019: 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 989: 986: 983: 980: 977: 974: 971: 968: 965: 962: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 917: 914: 911: 908: 905: 902: 899: 896: 893: 890: 887: 853: 845: 841: 837: 830: 826: 820: 813: 809: 777: 766: 762: 746: 742: 738: 734: 724: 720: 716: 684: 680: 652: 648: 644: 640: 636: 632: 628: 570:). Although its 569: 565: 561: 546: 538: 531:Import libraries 348:shared libraries 308: 304: 218: 214: 206: 184: 176: 172: 141:operating system 47: 21: 4759: 4758: 4754: 4753: 4752: 4750: 4749: 4748: 4724: 4723: 4722: 4717: 4687: 4655:Microsoft Store 4653: 4643: 4589:POSIX subsystem 4569:File Protection 4542: 4513:Program Manager 4498:Phone Companion 4488:Outlook Express 4438:Make Compatible 4368:Desktop Gadgets 4328:Anytime Upgrade 4311: 4223: 4196: 4187:Windows Runtime 4079: 4053: 4019:Family features 3977: 3802: 3758:DFS Replication 3669: 3584: 3575:Error Reporting 3531: 3431: 3307:Mobility Center 3302:Movies & TV 3196: 3180:Windows Insider 3070:Driver Verifier 3065:Drive Optimizer 3032: 3026: 3017:Booting process 2988: 2983: 2875: 2841:Hart, Johnson. 2838: 2837: 2827: 2825: 2816: 2815: 2811: 2801: 2799: 2790: 2789: 2785: 2775: 2773: 2772:on 31 July 2017 2760: 2759: 2755: 2745: 2743: 2735: 2734: 2730: 2720: 2718: 2716:www.gpg4win.org 2710: 2709: 2705: 2695: 2693: 2685: 2684: 2680: 2670: 2668: 2654: 2653: 2649: 2639: 2637: 2629: 2628: 2624: 2614: 2612: 2604: 2603: 2599: 2589: 2587: 2579: 2578: 2574: 2564: 2562: 2554: 2553: 2549: 2539: 2537: 2529: 2528: 2524: 2514: 2512: 2508: 2497: 2492: 2491: 2487: 2473: 2472: 2468: 2458: 2456: 2448: 2447: 2443: 2430: 2429: 2425: 2415: 2413: 2405: 2404: 2400: 2392: 2388: 2379: 2377: 2371: 2370: 2366: 2357: 2355: 2350: 2349: 2345: 2332: 2331: 2327: 2314: 2313: 2309: 2299: 2297: 2284: 2283: 2279: 2270: 2268: 2259: 2258: 2254: 2240: 2239: 2235: 2230: 2182:Dynamic library 2172: 2151: 2134: 2129: 2128: 2125: 2122: 2119: 2116: 2113: 2110: 2107: 2104: 2101: 2098: 2095: 2092: 2089: 2086: 2083: 2080: 2077: 2074: 2071: 2068: 2065: 2062: 2059: 2056: 2053: 2050: 2047: 2044: 2041: 2038: 2035: 2032: 2029: 2026: 2023: 2020: 2017: 2014: 2011: 2008: 2005: 2002: 1999: 1996: 1993: 1990: 1987: 1981: 1976: 1975: 1972: 1969: 1966: 1963: 1960: 1957: 1954: 1951: 1948: 1945: 1942: 1939: 1936: 1933: 1930: 1927: 1924: 1921: 1918: 1915: 1912: 1909: 1906: 1903: 1900: 1897: 1894: 1891: 1888: 1885: 1882: 1879: 1876: 1873: 1870: 1867: 1864: 1861: 1858: 1855: 1852: 1849: 1846: 1843: 1840: 1837: 1834: 1831: 1828: 1825: 1822: 1819: 1816: 1813: 1810: 1807: 1804: 1801: 1798: 1795: 1792: 1789: 1786: 1783: 1780: 1777: 1774: 1771: 1768: 1765: 1762: 1759: 1756: 1753: 1750: 1747: 1744: 1741: 1738: 1735: 1732: 1729: 1726: 1723: 1720: 1717: 1714: 1711: 1708: 1705: 1702: 1699: 1696: 1693: 1690: 1687: 1684: 1681: 1678: 1675: 1672: 1669: 1666: 1663: 1660: 1657: 1654: 1651: 1648: 1645: 1642: 1639: 1636: 1633: 1630: 1627: 1624: 1622:<stdio.h> 1621: 1618: 1615: 1612: 1609: 1604: 1603: 1600: 1597: 1594: 1591: 1588: 1585: 1582: 1579: 1576: 1573: 1570: 1567: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1543: 1540: 1537: 1534: 1531: 1528: 1525: 1522: 1519: 1516: 1513: 1510: 1507: 1504: 1501: 1498: 1495: 1492: 1489: 1486: 1483: 1480: 1477: 1474: 1471: 1468: 1465: 1462: 1459: 1456: 1453: 1450: 1447: 1444: 1441: 1438: 1435: 1432: 1429: 1426: 1423: 1420: 1417: 1414: 1411: 1408: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1382: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1324: 1321: 1318: 1315: 1312: 1309: 1306: 1303: 1300: 1297: 1294: 1291: 1288: 1285: 1282: 1279: 1276: 1273: 1269: 1266: 1263: 1260: 1257: 1254: 1251: 1248: 1222: 1218: 1204: 1199: 1198: 1195: 1192: 1189: 1186: 1183: 1180: 1177: 1174: 1171: 1168: 1165: 1162: 1159: 1156: 1153: 1150: 1147: 1144: 1141: 1138: 1135: 1132: 1129: 1126: 1123: 1120: 1117: 1114: 1111: 1108: 1105: 1102: 1099: 1096: 1093: 1090: 1087: 1084: 1081: 1078: 1075: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1052:<stdio.h> 1051: 1048: 1045: 1042: 1035: 1027: 1026: 1023: 1020: 1017: 1014: 1011: 1008: 1005: 1002: 999: 996: 993: 990: 987: 984: 981: 978: 975: 972: 969: 966: 963: 960: 957: 954: 952:// main program 951: 948: 945: 942: 939: 936: 933: 930: 927: 924: 921: 918: 915: 912: 909: 906: 903: 900: 897: 894: 891: 888: 885: 874: 869: 851: 843: 839: 835: 828: 822: 818: 811: 807: 788: 775: 767:API functions, 764: 760: 753: 744: 740: 736: 732: 722: 718: 714: 711: 706: 682: 678: 674: 672:Delayed loading 650: 646: 642: 638: 634: 630: 626: 619: 581: 567: 563: 559: 544: 536: 533: 476: 460: 455: 446: 412: 404: 306: 302: 275: 225: 216: 212: 204: 182: 174: 170: 164: 162:File extensions 148:executable code 69: 57: 42: 35: 28: 23: 22: 15: 12: 11: 5: 4757: 4755: 4747: 4746: 4741: 4736: 4726: 4725: 4719: 4718: 4716: 4715: 4704: 4692: 4689: 4688: 4686: 4685: 4680: 4675: 4670: 4665: 4659: 4657: 4649: 4648: 4645: 4644: 4642: 4641: 4636: 4631: 4626: 4621: 4616: 4611: 4606: 4601: 4596: 4591: 4586: 4581: 4576: 4571: 4566: 4561: 4556: 4550: 4548: 4544: 4543: 4541: 4540: 4535: 4530: 4525: 4520: 4518:Steps Recorder 4515: 4510: 4505: 4500: 4495: 4490: 4485: 4480: 4475: 4470: 4465: 4460: 4455: 4450: 4445: 4440: 4435: 4430: 4425: 4420: 4415: 4410: 4405: 4400: 4395: 4390: 4385: 4380: 4375: 4370: 4365: 4360: 4355: 4350: 4345: 4340: 4335: 4330: 4325: 4319: 4317: 4313: 4312: 4310: 4309: 4302: 4295: 4288: 4281: 4274: 4267: 4260: 4253: 4246: 4238: 4236: 4229: 4225: 4224: 4222: 4221: 4214: 4206: 4204: 4198: 4197: 4195: 4194: 4189: 4184: 4179: 4174: 4169: 4164: 4159: 4154: 4153: 4152: 4147: 4145:OLE Automation 4142: 4137: 4132: 4127: 4122: 4112: 4111: 4110: 4105: 4100: 4089: 4087: 4081: 4080: 4078: 4077: 4072: 4067: 4061: 4059: 4055: 4054: 4052: 4051: 4046: 4041: 4036: 4031: 4026: 4021: 4016: 4011: 4006: 4001: 3996: 3991: 3985: 3983: 3979: 3978: 3976: 3975: 3970: 3965: 3960: 3955: 3950: 3945: 3940: 3935: 3930: 3925: 3920: 3915: 3913:Object Manager 3910: 3905: 3900: 3895: 3890: 3885: 3880: 3875: 3873:Imaging Format 3870: 3865: 3860: 3855: 3850: 3849: 3848: 3843: 3833: 3828: 3823: 3818: 3812: 3810: 3804: 3803: 3801: 3800: 3795: 3790: 3785: 3780: 3775: 3770: 3765: 3760: 3755: 3750: 3745: 3740: 3735: 3730: 3725: 3720: 3715: 3710: 3705: 3700: 3695: 3690: 3685: 3679: 3677: 3671: 3670: 3668: 3667: 3662: 3657: 3656: 3655: 3650: 3645: 3640: 3635: 3630: 3620: 3615: 3610: 3605: 3600: 3594: 3592: 3586: 3585: 3583: 3582: 3577: 3572: 3570:Task Scheduler 3567: 3562: 3557: 3552: 3547: 3541: 3539: 3533: 3532: 3530: 3529: 3524: 3519: 3514: 3509: 3504: 3503: 3502: 3500:Special folder 3497: 3492: 3487: 3482: 3472: 3467: 3462: 3457: 3452: 3447: 3441: 3439: 3433: 3432: 3430: 3429: 3424: 3419: 3414: 3412:Voice Recorder 3409: 3404: 3399: 3394: 3389: 3384: 3379: 3374: 3369: 3364: 3359: 3354: 3349: 3344: 3339: 3334: 3329: 3324: 3319: 3314: 3309: 3304: 3299: 3298: 3297: 3287: 3282: 3277: 3272: 3267: 3262: 3257: 3252: 3247: 3242: 3237: 3232: 3227: 3222: 3217: 3212: 3206: 3204: 3198: 3197: 3195: 3194: 3189: 3184: 3183: 3182: 3175:Windows Update 3172: 3167: 3162: 3157: 3152: 3147: 3145:System Restore 3142: 3137: 3132: 3127: 3122: 3117: 3112: 3107: 3102: 3097: 3092: 3087: 3082: 3077: 3072: 3067: 3062: 3057: 3055:Device Manager 3052: 3047: 3045:Command Prompt 3042: 3036: 3034: 3028: 3027: 3025: 3024: 3019: 3014: 3013: 3012: 3007: 2999: 2993: 2990: 2989: 2984: 2982: 2981: 2974: 2967: 2959: 2953: 2952: 2947: 2942: 2937: 2932: 2927: 2922: 2917: 2911: 2908:What is a DLL? 2905: 2900: 2894: 2888: 2882: 2874: 2873:External links 2871: 2870: 2869: 2854: 2836: 2835: 2809: 2783: 2753: 2728: 2703: 2678: 2647: 2622: 2597: 2572: 2547: 2522: 2485: 2466: 2441: 2423: 2398: 2386: 2364: 2343: 2334:"ld and WIN32" 2325: 2307: 2290:Sandsprite.com 2277: 2252: 2232: 2231: 2229: 2226: 2225: 2224: 2219: 2217:Static library 2214: 2212:Shared library 2209: 2204: 2199: 2194: 2189: 2184: 2179: 2171: 2168: 2150: 2147: 2133: 2130: 1986: 1980: 1977: 1814:GetProcAddress 1808:importFunction 1691:importFunction 1640:importFunction 1611: 1608: 1605: 1517:GetProcAddress 1389: 1386: 1383: 1250: 1247: 1244: 1203: 1200: 1041: 884: 873: 870: 868: 865: 787: 784: 765:GetProcAddress 752: 749: 731:does not need 710: 707: 705: 702: 698:error handling 683:GetProcAddress 673: 670: 657:standard API. 635:GetProcAddress 618: 615: 580: 577: 551:format files. 532: 529: 475: 472: 459: 456: 454: 451: 445: 442: 441: 440: 435: 424: 422:.NET Framework 411: 408: 403: 400: 333:static library 319:device drivers 274: 271: 257:New Executable 224: 221: 168:file extension 163: 160: 127:shared library 113: 112: 110:Shared library 107: 101: 100: 95: 91: 90: 87: 81: 80: 77: 71: 70: 67: 65: 59: 58: 55: 53: 32:Dynamic linker 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 4756: 4745: 4742: 4740: 4737: 4735: 4732: 4731: 4729: 4714: 4705: 4703: 4694: 4693: 4690: 4684: 4681: 4679: 4676: 4674: 4671: 4669: 4666: 4664: 4661: 4660: 4658: 4656: 4650: 4640: 4637: 4635: 4634:Windows To Go 4632: 4630: 4627: 4625: 4622: 4620: 4617: 4615: 4612: 4610: 4607: 4605: 4602: 4600: 4597: 4595: 4592: 4590: 4587: 4585: 4582: 4580: 4577: 4575: 4572: 4570: 4567: 4565: 4562: 4560: 4557: 4555: 4552: 4551: 4549: 4545: 4539: 4536: 4534: 4531: 4529: 4526: 4524: 4521: 4519: 4516: 4514: 4511: 4509: 4506: 4504: 4503:Photo Gallery 4501: 4499: 4496: 4494: 4491: 4489: 4486: 4484: 4481: 4479: 4476: 4474: 4471: 4469: 4466: 4464: 4461: 4459: 4456: 4454: 4451: 4449: 4448:Meeting Space 4446: 4444: 4441: 4439: 4436: 4434: 4431: 4429: 4426: 4424: 4421: 4419: 4418:HyperTerminal 4416: 4414: 4411: 4409: 4406: 4404: 4401: 4399: 4396: 4394: 4391: 4389: 4388:Easy Transfer 4386: 4384: 4381: 4379: 4376: 4374: 4371: 4369: 4366: 4364: 4361: 4359: 4356: 4354: 4351: 4349: 4346: 4344: 4341: 4339: 4336: 4334: 4331: 4329: 4326: 4324: 4321: 4320: 4318: 4314: 4308: 4307: 4303: 4301: 4300: 4296: 4294: 4293: 4289: 4287: 4286: 4282: 4280: 4279: 4275: 4273: 4272: 4268: 4266: 4265: 4261: 4259: 4258: 4254: 4252: 4251: 4247: 4245: 4244: 4240: 4239: 4237: 4233: 4230: 4226: 4220: 4219: 4215: 4213: 4212: 4208: 4207: 4205: 4203: 4199: 4193: 4190: 4188: 4185: 4183: 4180: 4178: 4175: 4173: 4170: 4168: 4165: 4163: 4160: 4158: 4155: 4151: 4148: 4146: 4143: 4141: 4138: 4136: 4133: 4131: 4128: 4126: 4123: 4121: 4118: 4117: 4116: 4113: 4109: 4106: 4104: 4101: 4099: 4096: 4095: 4094: 4091: 4090: 4088: 4086: 4082: 4076: 4073: 4071: 4068: 4066: 4063: 4062: 4060: 4058:Compatibility 4056: 4050: 4047: 4045: 4042: 4040: 4037: 4035: 4032: 4030: 4027: 4025: 4022: 4020: 4017: 4015: 4012: 4010: 4007: 4005: 4002: 4000: 3997: 3995: 3992: 3990: 3987: 3986: 3984: 3980: 3974: 3971: 3969: 3966: 3964: 3961: 3959: 3956: 3954: 3951: 3949: 3946: 3944: 3941: 3939: 3936: 3934: 3931: 3929: 3926: 3924: 3921: 3919: 3916: 3914: 3911: 3909: 3906: 3904: 3901: 3899: 3896: 3894: 3891: 3889: 3886: 3884: 3883:Library files 3881: 3879: 3876: 3874: 3871: 3869: 3866: 3864: 3861: 3859: 3856: 3854: 3851: 3847: 3844: 3842: 3839: 3838: 3837: 3834: 3832: 3829: 3827: 3824: 3822: 3819: 3817: 3814: 3813: 3811: 3809: 3805: 3799: 3796: 3794: 3791: 3789: 3786: 3784: 3781: 3779: 3776: 3774: 3771: 3769: 3766: 3764: 3761: 3759: 3756: 3754: 3751: 3749: 3746: 3744: 3741: 3739: 3736: 3734: 3731: 3729: 3726: 3724: 3721: 3719: 3716: 3714: 3711: 3709: 3706: 3704: 3701: 3699: 3696: 3694: 3691: 3689: 3686: 3684: 3681: 3680: 3678: 3676: 3672: 3666: 3663: 3661: 3658: 3654: 3651: 3649: 3646: 3644: 3643:Reparse point 3641: 3639: 3636: 3634: 3631: 3629: 3626: 3625: 3624: 3621: 3619: 3616: 3614: 3611: 3609: 3606: 3604: 3601: 3599: 3596: 3595: 3593: 3591: 3587: 3581: 3578: 3576: 3573: 3571: 3568: 3566: 3563: 3561: 3558: 3556: 3553: 3551: 3548: 3546: 3543: 3542: 3540: 3538: 3534: 3528: 3525: 3523: 3520: 3518: 3515: 3513: 3510: 3508: 3505: 3501: 3498: 3496: 3493: 3491: 3488: 3486: 3483: 3481: 3478: 3477: 3476: 3473: 3471: 3468: 3466: 3463: 3461: 3458: 3456: 3453: 3451: 3448: 3446: 3445:Action Center 3443: 3442: 3440: 3438: 3434: 3428: 3425: 3423: 3420: 3418: 3415: 3413: 3410: 3408: 3405: 3403: 3400: 3398: 3395: 3393: 3390: 3388: 3385: 3383: 3380: 3378: 3375: 3373: 3372:Snipping Tool 3370: 3368: 3365: 3363: 3360: 3358: 3355: 3353: 3350: 3348: 3345: 3343: 3340: 3338: 3335: 3333: 3330: 3328: 3325: 3323: 3320: 3318: 3315: 3313: 3310: 3308: 3305: 3303: 3300: 3296: 3293: 3292: 3291: 3288: 3286: 3283: 3281: 3278: 3276: 3273: 3271: 3268: 3266: 3263: 3261: 3258: 3256: 3253: 3251: 3248: 3246: 3243: 3241: 3238: 3236: 3233: 3231: 3230:Character Map 3228: 3226: 3223: 3221: 3218: 3216: 3213: 3211: 3208: 3207: 3205: 3203: 3199: 3193: 3190: 3188: 3185: 3181: 3178: 3177: 3176: 3173: 3171: 3168: 3166: 3163: 3161: 3158: 3156: 3153: 3151: 3148: 3146: 3143: 3141: 3138: 3136: 3133: 3131: 3128: 3126: 3123: 3121: 3118: 3116: 3113: 3111: 3108: 3106: 3103: 3101: 3098: 3096: 3093: 3091: 3088: 3086: 3083: 3081: 3078: 3076: 3073: 3071: 3068: 3066: 3063: 3061: 3058: 3056: 3053: 3051: 3050:Control Panel 3048: 3046: 3043: 3041: 3040:App Installer 3038: 3037: 3035: 3029: 3023: 3020: 3018: 3015: 3011: 3008: 3006: 3003: 3002: 3001:Architecture 3000: 2998: 2995: 2994: 2991: 2987: 2980: 2975: 2973: 2968: 2966: 2961: 2960: 2957: 2951: 2948: 2946: 2943: 2941: 2938: 2936: 2933: 2931: 2928: 2926: 2923: 2921: 2918: 2915: 2912: 2909: 2906: 2904: 2901: 2898: 2895: 2892: 2889: 2886: 2883: 2880: 2877: 2876: 2872: 2867: 2866:0-201-63492-9 2863: 2859: 2855: 2852: 2851:0-321-25619-0 2848: 2844: 2840: 2839: 2824: 2820: 2813: 2810: 2797: 2793: 2787: 2784: 2771: 2767: 2763: 2757: 2754: 2742: 2738: 2732: 2729: 2717: 2713: 2707: 2704: 2692: 2688: 2682: 2679: 2666: 2662: 2658: 2651: 2648: 2636: 2632: 2626: 2623: 2611: 2607: 2601: 2598: 2586: 2582: 2576: 2573: 2561: 2557: 2551: 2548: 2536: 2532: 2526: 2523: 2507: 2503: 2496: 2489: 2486: 2481: 2477: 2470: 2467: 2455: 2451: 2445: 2442: 2437: 2433: 2427: 2424: 2412: 2408: 2402: 2399: 2395: 2390: 2387: 2375: 2368: 2365: 2353: 2347: 2344: 2339: 2335: 2329: 2326: 2322: 2317: 2311: 2308: 2295: 2291: 2287: 2281: 2278: 2267:on 2008-05-06 2266: 2262: 2256: 2253: 2248: 2244: 2237: 2234: 2227: 2223: 2220: 2218: 2215: 2213: 2210: 2208: 2205: 2203: 2200: 2198: 2195: 2193: 2190: 2188: 2185: 2183: 2180: 2177: 2174: 2173: 2169: 2167: 2165: 2161: 2156: 2155:vulnerability 2149:DLL hijacking 2148: 2146: 2143: 2139: 2131: 1984: 1978: 1606: 1384: 1245: 1243: 1216: 1212: 1207: 1201: 1061:"C" 1039: 1032: 1031: 882: 881: 877: 871: 866: 864: 862: 858: 849: 832: 825: 815: 805: 801: 797: 793: 785: 783: 779: 772: 770: 758: 750: 748: 730: 726: 708: 703: 701: 699: 695: 690: 688: 671: 669: 667: 663: 658: 656: 631:LoadLibraryEx 624: 616: 614: 611: 605: 602: 598: 593: 590: 589:binary search 585: 578: 576: 573: 564:_head_foo_dll 556: 552: 550: 542: 530: 528: 526: 522: 517: 515: 514:security hole 511: 505: 502: 498: 494: 489: 487: 486: 481: 473: 471: 468: 466: 458:Upgradability 457: 452: 450: 443: 439: 436: 433: 429: 425: 423: 420: 419: 418: 416: 409: 407: 401: 399: 397: 393: 389: 385: 381: 378:libraries in 377: 373: 367: 365: 361: 355: 353: 349: 344: 342: 341:device driver 336: 334: 329: 327: 326:Windows shell 322: 320: 316: 312: 300: 296: 292: 288: 284: 283:address space 280: 272: 270: 267: 265: 260: 258: 254: 250: 246: 242: 238: 234: 230: 222: 220: 210: 202: 200: 195: 190: 188: 187:device driver 185:for a legacy 181:controls and 180: 169: 161: 159: 157: 153: 150:(functions), 149: 144: 142: 139: 135: 132: 128: 124: 120: 111: 108: 106: 102: 99: 96: 92: 88: 86: 82: 78: 76: 72: 66: 64: 60: 54: 52: 48: 40: 33: 19: 18:DLL hijacking 4668:File Manager 4508:Photo Viewer 4443:Media Center 4403:Groove Music 4333:Address Book 4304: 4297: 4290: 4285:Purble Place 4283: 4276: 4269: 4262: 4255: 4250:Chess Titans 4248: 4241: 4228:Discontinued 4216: 4209: 3908:Ntoskrnl.exe 3845: 3816:Boot Manager 3808:Architecture 3698:Group Policy 3590:File systems 3490:Saved search 3397:Sticky Notes 3362:Quick Assist 3290:Media Player 3260:Feedback Hub 3255:Fax and Scan 3150:Task Manager 3080:Event Viewer 3060:Disk Cleanup 2857: 2842: 2826:. Retrieved 2823:seclists.org 2822: 2812: 2800:. Retrieved 2795: 2786: 2774:. Retrieved 2770:the original 2765: 2756: 2744:. Retrieved 2740: 2731: 2719:. Retrieved 2715: 2706: 2694:. Retrieved 2690: 2681: 2669:. Retrieved 2660: 2650: 2638:. Retrieved 2634: 2625: 2613:. Retrieved 2609: 2600: 2588:. Retrieved 2584: 2575: 2563:. Retrieved 2559: 2550: 2538:. Retrieved 2534: 2525: 2513:. Retrieved 2501: 2488: 2479: 2469: 2457:. Retrieved 2453: 2444: 2435: 2426: 2414:. Retrieved 2410: 2401: 2389: 2378:. Retrieved 2367: 2356:. Retrieved 2346: 2337: 2328: 2319: 2310: 2298:. Retrieved 2289: 2280: 2269:. Retrieved 2265:the original 2255: 2246: 2236: 2202:Moricons.dll 2163: 2159: 2152: 2135: 1982: 1214: 1208: 1205: 1033: 1029: 1028: 879: 878: 875: 833: 816: 789: 780: 773: 769:declarations 768: 757:Visual Basic 754: 727: 712: 691: 675: 659: 622: 620: 606: 596: 594: 586: 582: 572:GNU Binutils 557: 553: 545:kernel32.lib 541:kernel32.dll 534: 518: 506: 490: 483: 477: 469: 461: 447: 413: 405: 368: 356: 345: 337: 330: 323: 276: 268: 261: 226: 197: 194:resource DLL 193: 191: 165: 145: 122: 118: 116: 85:Magic number 4683:Minesweeper 4652:Spun off to 4473:MSN Dial-up 4468:Movie Maker 4373:Diagnostics 4323:ActiveMovie 4065:COMMAND.COM 3943:Shadow Copy 3798:Server Core 3638:Mount Point 3565:Shadow Copy 3160:Windows Ink 2671:November 7, 2585:technet.com 2560:technet.com 2515:November 7, 2300:November 7, 2207:Object file 2012:LoadLibrary 1925:FreeLibrary 1871:FreeLibrary 1727:LoadLibrary 1481:LoadLibrary 842:files. The 761:LoadLibrary 679:LoadLibrary 666:Windows API 639:FreeLibrary 627:LoadLibrary 480:Windows API 402:Limitations 396:Pentium Pro 264:entry point 229:file format 223:File format 4728:Categories 4663:DVD Player 4478:NetMeeting 4378:DriveSpace 4243:3D Pinball 3743:SharePoint 3507:Start menu 3352:Phone Link 3215:Calculator 3170:PowerShell 3031:Management 2796:rapid7.com 2459:28 October 2416:9 February 2380:2009-07-11 2358:2009-07-11 2271:2009-07-11 2228:References 2069:AddNumbers 2036:AddNumbers 1904:addNumbers 1838:addNumbers 1799:addNumbers 1694:addNumbers 1568:AddNumbers 1547:AddNumbers 1511:AddNumbers 1415:AddNumbers 1340:AddNumbers 1264:AddNumbers 1145:AddNumbers 1079:AddNumbers 1064:__declspec 1036:AddNumbers 979:AddNumbers 904:AddNumbers 819:__declspec 812:extern "C" 808:__declspec 792:Visual C++ 790:Microsoft 501:relocation 392:Windows Me 388:Windows 98 384:Windows 95 380:Windows 95 352:modularity 350:, such as 273:Background 251:(PE), and 233:executable 4458:Messenger 4453:Messaging 4383:DVD Maker 4353:CD Player 4348:CardSpace 4299:Solitaire 3999:BitLocker 3994:AppLocker 3628:Hard link 3517:Task View 3495:Namespace 3465:ClearType 3285:Messaging 3270:Magnifier 3235:Clipchamp 3210:3D Viewer 2160:Downloads 2153:Due to a 1709:HINSTANCE 1523:LibHandle 1499:LibHandle 1475:LibHandle 1460:LibHandle 1070:dllimport 786:C and C++ 687:exception 493:page file 156:resources 131:Microsoft 98:Microsoft 4702:Category 4579:MS-DOS 7 4564:ScanDisk 4483:NTBackup 4363:Contacts 4343:Cardfile 4278:Hold 'Em 4257:FreeCell 4103:VBScript 4014:Defender 3982:Security 3968:Winlogon 3923:Registry 3537:Services 3470:Explorer 3455:AutoPlay 3342:Paint 3D 3327:OneDrive 3317:Narrator 3265:Get Help 3220:Calendar 3115:Settings 3085:IExpress 2828:25 March 2802:25 March 2776:25 March 2746:25 March 2721:25 March 2696:25 March 2665:Archived 2640:25 March 2615:25 March 2590:25 March 2565:25 March 2540:25 March 2535:msdn.com 2506:Archived 2294:Archived 2222:DLL Hell 2170:See also 2099:c_double 2081:c_double 2054:c_double 1931:hinstLib 1877:hinstLib 1820:hinstLib 1751:hinstLib 1721:hinstLib 1712:hinstLib 1619:#include 1613:#include 1541:Assigned 1502:<> 1421:function 1261:Function 1255:Explicit 1240:kernel32 1232:kernel32 1049:#include 1043:#include 943:external 901:function 861:registry 737:external 725:clause. 485:sections 453:Features 415:DLL hell 410:DLL Hell 307:USER.EXE 235:(a.k.a. 4678:Mahjong 4599:Interix 4533:WinHelp 4433:Journal 4423:Imaging 4271:InkBall 4157:DirectX 4120:ActiveX 4108:JScript 3821:Console 3793:Hyper-V 3688:Domains 3512:Taskbar 3485:IFilter 3460:AutoRun 3422:WordPad 3417:Weather 3332:OneNote 3322:Notepad 3245:Cortana 3120:Sysprep 2916:on MSDN 2899:on MSDN 2893:on MSDN 2887:on MSDN 2881:on MSDN 2162:or the 2142:objects 2042:restype 1628:typedef 1556:Writeln 1466:HMODULE 1454:StdCall 1439:integer 1406:Windows 1394:Example 1391:program 1258:Declare 1000:Writeln 937:StdCall 892:Example 889:program 723:exports 719:program 715:library 653:in the 651:dlclose 364:ActiveX 303:GDI.EXE 259:(NE). 201:library 179:ActiveX 134:Windows 129:in the 125:) is a 4711:  4700:  4673:Hover! 4547:Others 4528:Travel 4523:Syskey 4306:Tinker 4264:Hearts 4192:WinUSB 4177:WinAPI 4162:Native 3973:WinUSB 3898:MinWin 3675:Server 3475:Search 3387:Sports 3357:Photos 3347:People 3225:Camera 2864:  2849:  2093:ctypes 2075:ctypes 2063:my_dll 2048:ctypes 2030:my_dll 2000:ctypes 1994:my_dll 1991:ctypes 1988:import 1979:Python 1964:return 1958:result 1952:" 1940:printf 1898:result 1883:return 1865:" 1853:printf 1784:return 1778:" 1766:printf 1703:result 1700:double 1652:double 1646:double 1631:double 1592:Readln 1448:Double 1385:Delphi 1373:Result 1334:Result 1331:Double 1325:Result 1310:Double 1301:Double 1286:Double 1252:Option 1215:before 1187:return 1181:result 1175:" 1163:printf 1139:result 1136:double 1094:double 1085:double 1076:double 1058:extern 964:Double 931:Double 922:Double 880:Delphi 729:Delphi 709:Delphi 649:, and 643:dlopen 601:linker 560:.dll.a 523:(e.g. 376:32-bit 291:MS-DOS 253:16-bit 245:64-bit 241:32-bit 207:, and 154:, and 4639:WinFS 4538:Write 4235:Games 4202:Games 4075:WoW64 3903:NTLDR 3893:LSASS 3826:CSRSS 3633:links 3608:exFAT 3437:Shell 3402:Store 3392:Start 3382:Skype 3337:Paint 3312:Money 3240:Clock 3187:WinRE 3095:Netsh 3033:tools 3022:Games 2509:(PDF) 2498:(PDF) 2321:.exe. 2111:print 1472:begin 1370:& 1364:Print 1358:Debug 1292:ByVal 1277:ByVal 970:begin 745:index 694:hooks 655:POSIX 647:dlsym 4713:List 4594:HPFS 4358:Chat 4316:Apps 4218:Surf 4167:.NET 4135:DCOM 3963:WHEA 3958:USER 3948:SMSS 3738:WSUS 3718:MSMQ 3660:ReFS 3623:NTFS 3598:CDFS 3555:CLFS 3550:BITS 3450:Aero 3427:Xbox 3407:Tips 3295:2022 3280:Maps 3275:Mail 3250:Edge 3202:Apps 2997:APIs 2862:ISBN 2847:ISBN 2830:2018 2804:2018 2778:2018 2748:2018 2723:2018 2698:2018 2673:2023 2642:2018 2617:2018 2592:2018 2567:2018 2542:2018 2517:2023 2461:2019 2418:2023 2394:MSDN 2302:2023 2164:Temp 2136:The 2006:cdll 1844:NULL 1757:NULL 1733:TEXT 1682:argv 1676:char 1670:argc 1661:main 1553:then 1508:then 1403:uses 1316:Main 1127:argv 1121:char 1115:argc 1106:main 857:GUID 838:and 763:and 741:name 681:and 629:(or 597:bind 537:.lib 430:and 390:and 243:and 227:The 217:.fot 215:and 213:.fon 209:font 205:.icl 199:icon 183:.drv 177:for 175:.ocx 171:.dll 152:data 138:OS/2 56:.dll 4493:Pay 4393:Fax 4140:OLE 4115:COM 4098:WSH 4085:API 3846:DLL 3841:EXE 3753:PWS 3733:IIS 3693:DNS 3665:UDF 3653:EFS 3648:TxF 3618:FAT 3613:IFS 3603:DFS 3192:WMI 2105:2.0 2087:1.0 1742:)); 1667:int 1658:int 1598:end 1412:var 1379:Sub 1376:End 1322:Dim 1313:Sub 1267:Lib 1238:in 1230:in 1221:or 1112:int 1103:int 1021:end 955:var 852:DLL 844:LIB 840:LIB 836:DLL 829:DEF 824:DEF 804:GCC 796:C++ 776:DLL 755:In 733:LIB 610:MD5 566:vs 525:UPX 478:In 295:API 237:EXE 136:or 123:DLL 4730:: 3010:NT 3005:9x 2821:. 2794:. 2764:. 2739:. 2714:. 2689:. 2663:. 2659:. 2633:. 2608:. 2583:. 2558:. 2533:. 2504:. 2500:. 2478:. 2452:. 2434:. 2409:. 2336:. 2318:. 2292:. 2288:. 2245:. 2108:)) 2090:), 1961:); 1949:\n 1934:); 1919:); 1880:); 1868:); 1862:\n 1841:== 1832:if 1829:); 1781:); 1775:\n 1754:== 1745:if 1679:** 1655:); 1643:)( 1538:if 1514::= 1496:if 1478::= 1328:As 1319:() 1307:As 1298:As 1283:As 1272:_ 1184:); 1172:\n 1160:); 1100:); 976::= 645:, 549:ar 467:. 386:, 366:. 297:, 219:. 189:. 143:. 117:A 89:MZ 2978:e 2971:t 2964:v 2868:. 2853:. 2832:. 2806:. 2780:. 2750:. 2725:. 2700:. 2675:. 2644:. 2619:. 2594:. 2569:. 2544:. 2519:. 2482:. 2463:. 2438:. 2420:. 2383:. 2361:. 2340:. 2304:. 2274:. 2249:. 2126:) 2123:p 2120:, 2114:( 2102:( 2096:. 2084:( 2078:. 2072:( 2066:. 2060:= 2057:p 2051:. 2045:= 2039:. 2033:. 2021:) 2015:( 2009:. 2003:. 1997:= 1973:} 1970:; 1967:0 1955:, 1943:( 1928:( 1916:3 1913:, 1910:1 1907:( 1901:= 1892:} 1889:; 1886:1 1874:( 1856:( 1850:{ 1847:) 1835:( 1823:, 1817:( 1811:) 1805:( 1802:= 1793:} 1790:; 1787:1 1769:( 1763:{ 1760:) 1748:( 1736:( 1730:( 1724:= 1715:; 1706:; 1697:; 1688:{ 1685:) 1673:, 1664:( 1649:, 1637:* 1634:( 1607:C 1601:. 1595:; 1589:; 1586:) 1583:) 1580:2 1577:, 1574:1 1571:( 1565:, 1559:( 1550:) 1544:( 1535:; 1532:) 1526:, 1520:( 1505:0 1493:; 1490:) 1484:( 1469:; 1463:: 1457:; 1451:; 1445:: 1442:) 1436:: 1433:b 1430:, 1427:a 1424:( 1418:: 1409:; 1397:; 1361:. 1355:) 1352:2 1349:, 1346:1 1343:( 1337:= 1304:) 1295:b 1289:, 1280:a 1274:( 1196:} 1193:; 1190:0 1178:, 1166:( 1157:2 1154:, 1151:1 1148:( 1142:= 1133:{ 1130:) 1124:* 1118:, 1109:( 1097:b 1091:, 1088:a 1082:( 1073:) 1067:( 1030:C 1024:. 1018:; 1015:) 1012:R 1009:, 1003:( 997:; 994:) 991:2 988:, 985:1 982:( 973:R 967:; 961:: 958:R 949:; 940:; 934:; 928:: 925:) 919:: 916:b 913:, 910:a 907:( 895:; 855:( 800:C 121:( 41:. 34:. 20:)

Index

DLL hijacking
Dynamic linker
Dynamically loaded library
Filename extension
Internet media type
Uniform Type Identifier (UTI)
Magic number
Microsoft
Container for
Shared library
shared library
Microsoft
Windows
OS/2
operating system
executable code
data
resources
file extension
ActiveX
device driver
icon
font
file format
executable
EXE
32-bit
64-bit
Portable Executable
16-bit

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.