1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-07 21:21:31 +00:00

Switch to VC++ 2019 redistributable

This commit is contained in:
dmiller
2021-07-30 22:50:41 +00:00
parent ab35a2eccc
commit 0dc7df9573

View File

@@ -135,7 +135,11 @@ Var zenmapset
Var vcredist2008set
!endif
Var addremoveset
Var vcredist2013set
Var vcredistset
!define NMAP_ARCH x86
!define VCREDISTEXE VC_redist.${NMAP_ARCH}.exe
!define VCREDISTVER 14.0
!define VCREDISTYEAR 2019
;--------------------------------
;Reserves
@@ -260,7 +264,7 @@ Section "Nmap Core Files" SecCore
;Store installation folder
WriteRegStr HKCU "Software\${NMAP_NAME}" "" $INSTDIR
Call vcredist2013installer
Call vcredistinstaller
Call create_uninstaller
SectionEnd
@@ -325,7 +329,7 @@ Section "Ncat (Modern Netcat reincarnation)" SecNcat
SetOverwrite on
File ${STAGE_DIR}\ncat.exe
File ${STAGE_DIR}\ca-bundle.crt
Call vcredist2013installer
Call vcredistinstaller
Call create_uninstaller
SectionEnd
@@ -333,45 +337,38 @@ Section "Nping (Packet generator)" SecNping
SetOutPath "$INSTDIR"
SetOverwrite on
File ${STAGE_DIR}\nping.exe
Call vcredist2013installer
Call vcredistinstaller
Call create_uninstaller
SectionEnd
Function vcredist2013installer
StrCmp $vcredist2013set "" 0 vcredist_done
StrCpy $vcredist2013set "true"
;Check if VC++ 2013 runtimes are already installed.
!macro VCRuntimeInstalled _a _b _t _f
SetRegView 32
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\VisualStudio\${VCREDISTVER}\VC\Runtimes\${NMAP_ARCH}" "Installed"
StrCmp $0 "1" `${_t}` `${_f}`
!macroend
Function vcredistinstaller
StrCmp $vcredistset "" 0 vcredist_done
StrCpy $vcredistset "true"
;Check if VC++ runtimes are already installed.
;This version creates a registry key that makes it easy to check whether a version (not necessarily the
;one we may be about to install) of the VC++ 2013 redistributables have been installed. On x64 systems we need to check
;the Wow6432Node registry key instead.
;one we may be about to install) of the VC++ redistributables have been installed.
;Only run our installer if a version isn't already present, to prevent installing older versions resulting in error messages.
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" "Install"
StrCmp $0 "1" vcredist_done vcredist_check_wow6432node
vcredist_check_wow6432node:
ReadRegStr $0 HKLM "SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" "Install"
StrCmp $0 "1" vcredist_done vcredist_silent_install
;If VC++ 2013 runtimes are not installed...
vcredist_silent_install:
DetailPrint "Installing Microsoft Visual C++ 2013 Redistributable"
;If VC++ runtimes are not installed...
${IfNot} ${VCRedistInstalled}
DetailPrint "Installing Microsoft Visual C++ ${VCREDISTYEAR} Redistributable"
SetOutPath $PLUGINSDIR
File ${STAGE_DIR}\vcredist_x86.exe
ExecWait '"$PLUGINSDIR\vcredist_x86.exe" /q' $0
;Check for successful installation of our vcredist_x86.exe...
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" "Install"
StrCmp $0 "1" vcredist_success vcredist_not_present_check_wow6432node
vcredist_not_present_check_wow6432node:
ReadRegStr $0 HKLM "SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\12.0\RuntimeMinimum" "Install"
StrCmp $0 "1" vcredist_success vcredist_not_present
File ..\${VCREDISTEXE}
ExecWait '"$PLUGINSDIR\${VCREDISTEXE}" /quiet' $0
;Check for successful installation of our package...
Delete "$PLUGINSDIR\${VCREDISTEXE}"
vcredist_not_present:
DetailPrint "Microsoft Visual C++ 2013 Redistributable failed to install"
MessageBox MB_OK "Microsoft Visual C++ 2013 Redistributable Package (x86) failed to install. Please ensure your system meets the minimum requirements before running the installer again."
Goto vcredist_done
vcredist_success:
Delete "$PLUGINSDIR\vcredist_x86.exe"
DetailPrint "Microsoft Visual C++ 2013 Redistributable was successfully installed"
vcredist_done:
${IfNot} ${VCRedistInstalled}
DetailPrint "Microsoft Visual C++ ${VCREDISTYEAR} Redistributable failed to install"
MessageBox MB_OK "Microsoft Visual C++ ${VCREDISTYEAR} Redistributable Package (${NMAP_ARCH}) failed to install. Please ensure your system meets the minimum requirements before running the installer again."
${Else}
DetailPrint "Microsoft Visual C++ ${VCREDISTYEAR} Redistributable was successfully installed"
${EndIf}
${EndIf}
FunctionEnd
!ifndef NMAP_OEM
@@ -489,7 +486,7 @@ FunctionEnd
;Descriptions
;Component strings
LangString DESC_SecCore ${LANG_ENGLISH} "Installs Nmap executable, NSE scripts and Visual C++ 2013 runtime components"
LangString DESC_SecCore ${LANG_ENGLISH} "Installs Nmap executable, NSE scripts and Visual C++ ${VCREDISTYEAR} runtime components"
LangString DESC_SecRegisterPath ${LANG_ENGLISH} "Registers Nmap path to System path so you can execute it from any directory"
LangString DESC_SecNpcap ${LANG_ENGLISH} "Installs Npcap ${NPCAP_VERSION} (required for most Nmap scans unless it is already installed)"
LangString DESC_SecPerfRegistryMods ${LANG_ENGLISH} "Modifies Windows registry values to improve TCP connect scan performance. Recommended."