Coding is boring. We often re-use the same code tweaking it according to our needs. I do it all the time. Turns out that OS developers do the very same thing. It can be revealed by comparing the external names of DLLs (file names) and their internal names hidden inside the export directory.
The below is a list from a random Windows 7 installation
- bold=name in export directory
- note: I excluded the hotifexes/updates to make the list shorter, but if you have look at them you will see that the DLLs are being updated many times and QA process still doesn’t catch them
- note: some changes can be probably explained via historical needs (8.3 naming convention)
- the same name inside the export directory means developer(s) simply copy&paste code for different DLLs (smalldll.dll is popular amongst them 🙂 )
dummysbs.dll
- C:\WINDOWS\Microsoft.NET\Framework\sbs_iehost.dll
- C:\WINDOWS\Microsoft.NET\Framework\sbs_VsaVb7rt.dll
exports.dll
- C:\WINDOWS\ie8\ieencode.dll
- C:\WINDOWS\system32\ieencode.dll
INETCPL.dll
- C:\WINDOWS\system32\inetcpl.cpl
mpsystemstatecheck.dll
- <various>\mpsyschk.dll
msconv97.pex
- <various>\msconv97.dll
MSMSGSC.dll
- <various>\msgsc.dll
PresentationHost.dll
- C:\WINDOWS\Installer\$PatchCache$\Managed\5C1093C35543A0E32A41B090A305076A\4.0.30319\PresentationHostDLL_X86.dll
- C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\WPF\PresentationHost_v0400.dll
smalldll.dll
- C:\WINDOWS\system32\MP43DMOD.dll
- C:\WINDOWS\system32\MP4SDMOD.dll
- C:\WINDOWS\system32\MPG4DMOD.dll
- C:\WINDOWS\system32\wdfapi.dll
- C:\WINDOWS\system32\wmp.ocx
- C:\WINDOWS\system32\wmpcd.dll
- C:\WINDOWS\system32\wmpcore.dll
- C:\WINDOWS\system32\wmpui.dll
- C:\WINDOWS\system32\wmsdmod.dll
- C:\WINDOWS\system32\wmsdmoe2.dll
- C:\WINDOWS\system32\WMVADVD.dll
- C:\WINDOWS\system32\WMVADVE.DLL
- C:\WINDOWS\system32\wmvdmod.dll
- C:\WINDOWS\system32\wmvdmoe2.dll