De Low Life of a DLL name

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