debuggingdelphiwindows-11runtime-packagesdelphi-3

Find why a DLL is not being loaded on Windows 11


I have an old Windows XP era 32-bit Delphi program that gives an error message on default installations of Windows 11 64-bit. This program and its dependencies are copied to folder on the target machine. There is no installation needed.

abc.exe - Bad Image

C:\abcFolder\Program\VCL30.dpl is either not designed to run on Windows or it contains an error.
Try installing the program again using the original installation media 
or contact your system administrator or the software vendor for support. Error status 0xc000000d. 

OK

How can I troubleshoot as to what is missing to execute the program?

Windows Version working: Windows 11 Pro 22H2 Build: 22621.2861
Windows Version not working: Windows 11 Pro 23H2 Build: 22631.2861

Troubleshooting steps done:

  1. I have a Windows 11 VM where I can successfully execute the program, and another VM where I cannot.
    And I have the same version of Windows with the same Windows Components installed.
  2. I have the following WinDbg output, which shows a difference in the loaded DLLs:
Working VM
CommandLine: C:\abcFolder\Program\abc.exe

************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
Symbol search path is: srv*
Executable search path is: 
ModLoad: 00400000 0073b000   image00400000
ModLoad: 77120000 772d1000   ntdll.dll
ModLoad: 75c90000 75d80000   C:\Windows\SysWOW64\KERNEL32.DLL
ModLoad: 75e50000 760c4000   C:\Windows\SysWOW64\KERNELBASE.dll
ModLoad: 76e90000 77038000   C:\Windows\SysWOW64\user32.dll
ModLoad: 41300000 4143e000   C:\abcFolder\Program\VCL30.dpl
ModLoad: 00c30000 00d6e000   C:\abcFolder\Program\VCL30.dpl
ModLoad: 74e40000 74e5a000   C:\Windows\SysWOW64\win32u.dll
ModLoad: 75450000 754cd000   C:\Windows\SysWOW64\advapi32.dll
ModLoad: 74e60000 74e83000   C:\Windows\SysWOW64\GDI32.dll
ModLoad: 768f0000 769b4000   C:\Windows\SysWOW64\msvcrt.dll
ModLoad: 75660000 75742000   C:\Windows\SysWOW64\gdi32full.dll
ModLoad: 755d0000 75652000   C:\Windows\SysWOW64\sechost.dll
ModLoad: 75bb0000 75c29000   C:\Windows\SysWOW64\msvcp_win.dll
ModLoad: 750d0000 7518a000   C:\Windows\SysWOW64\RPCRT4.dll
ModLoad: 74e90000 74fa2000   C:\Windows\SysWOW64\ucrtbase.dll
ModLoad: 754e0000 7557c000   C:\Windows\SysWOW64\oleaut32.dll
ModLoad: 760e0000 76777000   C:\Windows\SysWOW64\shell32.dll
ModLoad: 75930000 75bad000   C:\Windows\SysWOW64\combase.dll
ModLoad: 00d70000 00e29000   C:\abcFolder\Program\ip30.dpl
ModLoad: 41700000 4179d000   C:\abcFolder\Program\vcldb30.dpl
ModLoad: 00d70000 00ec0000   C:\Windows\SysWOW64\ole32.dll
ModLoad: 75300000 75450000   C:\Windows\SysWOW64\ole32.dll
ModLoad: 75190000 75242000   C:\Windows\SysWOW64\comdlg32.dll
ModLoad: 41900000 41939000   C:\abcFolder\Program\vclx30.dpl
ModLoad: 41c00000 41c13000   C:\abcFolder\Program\VclSmp30.dpl
ModLoad: 75d80000 75e41000   C:\Windows\SysWOW64\shcore.dll
ModLoad: 733a0000 733b9000   C:\Windows\SysWOW64\mpr.dll
ModLoad: 75580000 755cb000   C:\Windows\SysWOW64\SHLWAPI.dll
ModLoad: 00d70000 00d88000   C:\abcFolder\Program\vcldbx30.dpl
ModLoad: 748d0000 748d8000   C:\Windows\SysWOW64\wsock32.dll
ModLoad: 73530000 735c1000   C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.22621.2506_none_fbe8e1f07808be9b\comctl32.dll
ModLoad: 76890000 768ef000   C:\Windows\SysWOW64\WS2_32.dll
ModLoad: 734f0000 73521000   C:\Windows\SysWOW64\winmm.dll
ModLoad: 73430000 7345f000   C:\Windows\SysWOW64\oledlg.dll
ModLoad: 72b60000 72bdf000   C:\Windows\SysWOW64\winspool.drv
ModLoad: 00d70000 00e29000   C:\abcFolder\Program\ip30.dpl
ModLoad: 00e30000 00e48000   C:\abcFolder\Program\vcldbx30.dpl
(bc4.1268): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=e55c0000 edx=00000000 esi=009f20f8 edi=00280000
eip=771d8087 esp=0019f7f4 ebp=0019f820 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
Not working VM
CommandLine: C:\abcFolder\Program\abc.exe

************* Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
Symbol search path is: srv*
Executable search path is: 
ModLoad: 00400000 0073b000   image00400000
ModLoad: 77630000 777e1000   ntdll.dll
ModLoad: 76580000 76670000   C:\Windows\SysWOW64\KERNEL32.DLL
ModLoad: 752b0000 75524000   C:\Windows\SysWOW64\KERNELBASE.dll
ModLoad: 76240000 763e8000   C:\Windows\SysWOW64\user32.dll
ModLoad: 75c20000 75c3a000   C:\Windows\SysWOW64\win32u.dll
ModLoad: 77370000 77393000   C:\Windows\SysWOW64\GDI32.dll
ModLoad: 767d0000 768b2000   C:\Windows\SysWOW64\gdi32full.dll
ModLoad: 763f0000 76469000   C:\Windows\SysWOW64\msvcp_win.dll
ModLoad: 760c0000 761d2000   C:\Windows\SysWOW64\ucrtbase.dll
eax=00000000 ebx=0000000e ecx=00000000 edx=00000000 esi=007c5808 edi=007c3760
eip=776a852c esp=00c2fdb0 ebp=00c2ff74 iopl=0         nv up ei pl nz ac po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000212

Solution

  • try to turn off "Smart App Control".

    https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/wdac#wdac-and-smart-app-control

    I just make Delphi 3.0 running in my Win11 after turn off "Smart App Control".