Skip to content

MSKLC 1.4 layout build arguments and env vars

Rimas Kudelis edited this page Jan 22, 2023 · 2 revisions

Just like Igor Levicki, I decided to stub the binaries used by kbdutool supplied with MSKLC 1.4 with fake executables which output the full command line used to run them as well as the all environment variables in a text file. Below are the results of running kbdutool with different target architecture arguments.

  • Initial cmd environment (ARM64 PC):

    ALLUSERSPROFILE=C:\ProgramData
    APPDATA=C:\Users\Rimas\AppData\Roaming
    CommonProgramFiles=C:\Program Files\Common Files
    CommonProgramFiles(Arm)=C:\Program Files (Arm)\Common Files
    CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
    CommonProgramW6432=C:\Program Files\Common Files
    COMPUTERNAME=PEARL
    ComSpec=C:\WINDOWS\system32\cmd.exe
    DriverData=C:\Windows\System32\Drivers\DriverData
    FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
    FPS_BROWSER_USER_PROFILE_STRING=Default
    HOMEDRIVE=C:
    HOMEPATH=\Users\Rimas
    LOCALAPPDATA=C:\Users\Rimas\AppData\Local
    LOGONSERVER=\\PEARL
    NUMBER_OF_PROCESSORS=8
    OneDrive=C:\Users\Rimas\OneDrive
    OS=Windows_NT
    Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\Rimas\AppData\Local\Microsoft\WindowsApps;C:\Users\Rimas\AppData\Local\GitHubDesktop\bin
    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    PROCESSOR_ARCHITECTURE=ARM64
    PROCESSOR_IDENTIFIER=ARMv8 (64-bit) Family 8 Model 805 Revision D0E, Qualcomm Technologies Inc
    PROCESSOR_LEVEL=2053
    PROCESSOR_REVISION=0d0e
    ProgramData=C:\ProgramData
    ProgramFiles=C:\Program Files
    ProgramFiles(Arm)=C:\Program Files (Arm)
    ProgramFiles(x86)=C:\Program Files (x86)
    ProgramW6432=C:\Program Files
    PROMPT=$P$G
    PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
    PUBLIC=C:\Users\Public
    SESSIONNAME=Console
    SystemDrive=C:
    SystemRoot=C:\WINDOWS
    TEMP=C:\Users\Rimas\AppData\Local\Temp
    TMP=C:\Users\Rimas\AppData\Local\Temp
    USERDOMAIN=PEARL
    USERDOMAIN_ROAMINGPROFILE=PEARL
    USERNAME=Rimas
    USERPROFILE=C:\Users\Rimas
    windir=C:\WINDOWS
    
  • X86:

    • Environment changes:
      CommonProgramFiles=C:\Program Files (x86)\Common Files
      PROCESSOR_ARCHITECTURE=x86
      PROCESSOR_ARCHITEW6432=ARM64
      ProgramFiles=C:\Program Files (x86)
      
    • Commands:
      c:\PROGRA~2\MICROS~1.4\bin\i386\cl.exe  -nologo -Ic:\PROGRA~2\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs   ltenh.c
      c:\PROGRA~2\MICROS~1.4\bin\i386\rc.exe  -r -ic:\PROGRA~2\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 ltenh.rc
      c:\PROGRA~2\MICROS~1.4\bin\i386\link.exe  -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:IX86 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:c:\PROGRA~2\MICROS~1.4\lib\i386 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:ltenh.def ltenh.res ltenh.obj
      
  • AMD64:

    • Environment changes:
      CommonProgramFiles=C:\Program Files (x86)\Common Files
      PROCESSOR_ARCHITECTURE=x86
      PROCESSOR_ARCHITEW6432=ARM64
      ProgramFiles=C:\Program Files (x86)
      
      • Only for link.exe (in addition to the above):
        SECTION_ALIGNMENT=0x4000
        
    • Commands:
      c:\PROGRA~2\MICROS~1.4\bin\i386\amd64\cl.exe  -nologo -Ic:\PROGRA~2\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs   ltenh.c
      c:\PROGRA~2\MICROS~1.4\bin\i386\rc.exe  -r -ic:\PROGRA~2\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 ltenh.rc
      c:\PROGRA~2\MICROS~1.4\bin\i386\link.exe  -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:AMD64 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:c:\PROGRA~2\MICROS~1.4\lib\amd64 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:ltenh.def ltenh.res ltenh.obj
      
  • WOW64:

    • Environment changes:
      CommonProgramFiles=C:\Program Files (x86)\Common Files
      PROCESSOR_ARCHITECTURE=x86
      PROCESSOR_ARCHITEW6432=ARM64
      ProgramFiles=C:\Program Files (x86)
      
    • Commands:
      c:\PROGRA~2\MICROS~1.4\bin\i386\cl.exe  -nologo -Ic:\PROGRA~2\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs -DBUILD_WOW6432 -D_WOW6432_ ltenh.c
      c:\PROGRA~2\MICROS~1.4\bin\i386\rc.exe  -r -ic:\PROGRA~2\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 ltenh.rc
      c:\PROGRA~2\MICROS~1.4\bin\i386\link.exe  -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:IX86 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:c:\PROGRA~2\MICROS~1.4\lib\i386 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:ltenh.def ltenh.res ltenh.obj
      
  • IA64:

    • Environment changes:
      CommonProgramFiles=C:\Program Files (x86)\Common Files
      PROCESSOR_ARCHITECTURE=x86
      PROCESSOR_ARCHITEW6432=ARM64
      ProgramFiles=C:\Program Files (x86)
      
      • Only for link.exe (in addition to the above):
        SECTION_ALIGNMENT=0x4000
        
    • Commands:
      c:\PROGRA~2\MICROS~1.4\bin\i386\IA64\cl.exe  -nologo -Ic:\PROGRA~2\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs   ltenh.c
      c:\PROGRA~2\MICROS~1.4\bin\i386\rc.exe  -r -ic:\PROGRA~2\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 ltenh.rc
      c:\PROGRA~2\MICROS~1.4\bin\i386\link.exe  -nologo -merge:.edata=.data -merge:.srdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text /MACHINE:IA64 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:c:\PROGRA~2\MICROS~1.4\lib\ia64 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:ltenh.def ltenh.res ltenh.obj
      

Interestingly, base address, which Igor mentioned in his post, is not supplied. Does that mean that it doesn't really matter?

Clone this wiki locally