Refactor Windows kit build process for new layout

This commit is contained in:
2Shirt 2021-10-08 20:05:08 -06:00
parent 24269f801c
commit a7779a9c1f
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C
10 changed files with 320 additions and 2050 deletions

View file

@ -1,45 +0,0 @@
## Borrowed from https://ss64.com/ps/syntax-set-eol.html
#
# set-eol.ps1
# Change the line endings of a text file to: Windows (CR/LF), Unix (LF) or Mac (CR)
# Requires PowerShell 3.0 or greater
# Syntax
# ./set-eol.ps1 -lineEnding {mac|unix|win} -file FullFilename
# mac, unix or win : The file endings desired.
# FullFilename : The full pathname of the file to be modified.
# ./set-eol win "c:\demo\data.txt"
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[ValidateSet("mac","unix","win")]
[string]$lineEnding,
[Parameter(Mandatory=$True)]
[string]$file
)
# Convert the friendly name into a PowerShell EOL character
Switch ($lineEnding) {
"mac" { $eol="`r" }
"unix" { $eol="`n" }
"win" { $eol="`r`n" }
}
# Replace CR+LF with LF
$text = [IO.File]::ReadAllText($file) -replace "`r`n", "`n"
[IO.File]::WriteAllText($file, $text)
# Replace CR with LF
$text = [IO.File]::ReadAllText($file) -replace "`r", "`n"
[IO.File]::WriteAllText($file, $text)
# At this point all line-endings should be LF.
# Replace LF with intended EOL char
if ($eol -ne "`n") {
$text = [IO.File]::ReadAllText($file) -replace "`n", $eol
[IO.File]::WriteAllText($file, $text)
}

View file

@ -13,7 +13,7 @@ DATETIME="$(date +%Y-%m-%d_%H%M)"
ROOT_DIR="$(realpath $(dirname "$0")/..)"
BUILD_DIR="$ROOT_DIR/setup/BUILD"
LOG_DIR="$BUILD_DIR/logs"
OUT_DIR="$ROOT_DIR/setup/OUT"
OUT_DIR="$ROOT_DIR/setup/OUT_LINUX"
PROFILE_DIR="$BUILD_DIR/archiso-profile"
REPO_DIR="$BUILD_DIR/repo"
SKEL_DIR="$PROFILE_DIR/airootfs/etc/skel"

View file

@ -3,31 +3,38 @@
@echo off
:Init
setlocal
setlocal EnableDelayedExpansion
pushd "%~dp0"
title Wizard Kit: Build Tool
call :CheckFlags %*
:PrepNewKit
rem Copy base files to a new folder OUT_KIT
robocopy /e .kit_items OUT_KIT
robocopy /e .bin OUT_KIT\.bin
robocopy /e .cbin OUT_KIT\.cbin
copy LICENSE.txt OUT_KIT\LICENSE.txt
copy README.md OUT_KIT\README.md
copy Images\ConEmu.png OUT_KIT\.bin\ConEmu\
mkdir OUT_KIT\.cbin >nul 2>&1
attrib +h OUT_KIT\.bin >nul 2>&1
attrib +h OUT_KIT\.cbin >nul 2>&1
:SetVariables
rem Set variables using settings\main.py file
set "SETTINGS=..\scripts\wk\cfg\main.py"
for %%v in (KIT_NAME_FULL) do (
set "var=%%v"
for /f "tokens=* usebackq" %%f in (`findstr "!var!=" "%SETTINGS%"`) do (
set "_v=%%f"
set "_v=!_v:*'=!"
set "%%v=!_v:~0,-1!"
)
)
set "OUT_DIR=OUT_KIT\%KIT_NAME_FULL%"
:EnsureCRLF
rem Rewrite main.py using PowerShell to have CRLF/`r`n lineendings
set "script=OUT_KIT\.bin\Scripts\borrowed\set-eol.ps1"
set "main=OUT_KIT\.bin\Scripts\settings\main.py"
powershell -executionpolicy bypass -noprofile -file %script% -lineEnding win -file %main% || goto ErrorUnknown
:PrepNewKit
rem Copy base files to a new folder %OUT_DIR%
mkdir %OUT_DIR% >nul 2>&1
robocopy /e windows/bin %OUT_DIR%\.bin
robocopy /e windows/cbin %OUT_DIR%\.cbin
copy ..\LICENSE.txt %OUT_DIR%\LICENSE.txt
copy ..\README.md %OUT_DIR%\README.md
copy ..\images\ConEmu.png %OUT_DIR%\.bin\ConEmu\
attrib +h %OUT_DIR%\.bin >nul 2>&1
attrib +h %OUT_DIR%\.cbin >nul 2>&1
:Launch
set "script=OUT_KIT\.bin\Scripts\build_kit.ps1"
powershell -executionpolicy bypass -noprofile -file %script% || goto ErrorUnknown
set "script=windows\build.ps1"
powershell -executionpolicy bypass -noprofile -file %script% "%OUT_DIR%" || goto ErrorUnknown
goto Exit
:: Functions ::
@ -58,5 +65,6 @@ goto Exit
:: Cleanup and exit ::
:Exit
popd
endlocal
exit /b %errorlevel%

View file

@ -1,14 +1,19 @@
# Wizard Kit: Download kit components
# Wizard Kit: Build base kit
## Init ##
#Requires -Version 3.0
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[string]$KitPath
)
if (Test-Path Env:\DEBUG) {
Set-PSDebug -Trace 1
}
$Host.UI.RawUI.WindowTitle = "Wizard Kit: Build Tool"
$WD = $(Split-Path $MyInvocation.MyCommand.Path)
$Bin = (Get-Item $WD).Parent.FullName
$Root = (Get-Item $Bin -Force).Parent.FullName
$WD = Split-Path $MyInvocation.MyCommand.Path | Get-Item
$Root = Get-Item "$KitPath"
$Bin = Get-Item "$($Root.FullName)\.bin" -Force
$Temp = "$Bin\tmp"
$System32 = "{0}\System32" -f $Env:SystemRoot
$SysWOW64 = "{0}\SysWOW64" -f $Env:SystemRoot
@ -74,65 +79,50 @@ if ($MyInvocation.InvocationName -ne ".") {
Clear-Host
Write-Host "Wizard Kit: Build Tool`n`n`n`n`n"
## Sources ##
$Sources = Get-Content -Path "$WD\sources.json" | ConvertFrom-JSON
## Download ##
$DownloadErrors = 0
$Path = $Temp
# 7-Zip
DownloadFile -Path $Path -Name "7z-installer.msi" -Url "https://www.7-zip.org/a/7z1900.msi"
DownloadFile -Path $Path -Name "7z-extra.7z" -Url "https://www.7-zip.org/a/7z1900-extra.7z"
DownloadFile -Path $Temp -Name "7z-installer.msi" -Url $Sources.'7-Zip Installer'
DownloadFile -Path $Temp -Name "7z-extra.7z" -Url $Sources.'7-Zip Extra'
# ConEmu
$Url = "https://github.com/Maximus5/ConEmu/releases/download/v19.03.10/ConEmuPack.190310.7z"
DownloadFile -Path $Path -Name "ConEmuPack.7z" -Url $Url
# Notepad++
$Url = "https://notepad-plus-plus.org/repository/7.x/7.6.4/npp.7.6.4.bin.minimalist.7z"
DownloadFile -Path $Path -Name "npp.7z" -Url $Url
DownloadFile -Path $Temp -Name "ConEmuPack.7z" -Url $Sources.'ConEmu'
# Python
$Url = "https://www.python.org/ftp/python/3.7.2/python-3.7.2.post1-embed-win32.zip"
DownloadFile -Path $Path -Name "python32.zip" -Url $Url
$Url = "https://www.python.org/ftp/python/3.7.2/python-3.7.2.post1-embed-amd64.zip"
DownloadFile -Path $Path -Name "python64.zip" -Url $Url
DownloadFile -Path $Temp -Name "python32.zip" -Url $Sources.'Python x32'
DownloadFile -Path $Temp -Name "python64.zip" -Url $Sources.'Python x64'
# Python: docopt
Copy-Item -Path "$WD\docopt\docopt-0.6.2-py2.py3-none-any.whl" -Destination "$Temp\docopt.whl"
# Python: psutil
$DownloadPage = "https://pypi.org/project/psutil/"
$RegEx = "href=.*-cp37-cp37m-win32.whl"
$RegEx = "href=.*-cp38-cp38-win32.whl"
$Url = FindDynamicUrl $DownloadPage $RegEx
DownloadFile -Path $Path -Name "psutil32.whl" -Url $Url
$RegEx = "href=.*-cp37-cp37m-win_amd64.whl"
DownloadFile -Path $Temp -Name "psutil32.whl" -Url $Url
$RegEx = "href=.*-cp38-cp38-win_amd64.whl"
$Url = FindDynamicUrl $DownloadPage $RegEx
DownloadFile -Path $Path -Name "psutil64.whl" -Url $Url
DownloadFile -Path $Temp -Name "psutil64.whl" -Url $Url
# Python: requests & dependancies
# Python: pytz, requests, & dependancies
$RegEx = "href=.*.py3-none-any.whl"
foreach ($Module in @("chardet", "certifi", "idna", "urllib3", "requests")) {
foreach ($Module in @("chardet", "certifi", "idna", "pytz", "urllib3", "requests")) {
$DownloadPage = "https://pypi.org/project/$Module/"
$Name = "$Module.whl"
$Url = FindDynamicUrl -SourcePage $DownloadPage -RegEx $RegEx
DownloadFile -Path $Path -Name $Name -Url $Url
DownloadFile -Path $Temp -Name $Name -Url $Url
}
# Visual C++ Runtimes
$Url = "https://aka.ms/vs/15/release/vc_redist.x86.exe"
DownloadFile -Path $Path -Name "vcredist_x86.exe" -Url $Url
$Url = "https://aka.ms/vs/15/release/vc_redist.x64.exe"
DownloadFile -Path $Path -Name "vcredist_x64.exe" -Url $Url
## Bail ##
# If errors were encountered during downloads
if ($DownloadErrors -gt 0) {
Abort
}
## Install ##
# Visual C++ Runtimes
$ArgumentList = @("/install", "/passive", "/norestart")
Start-Process -FilePath "$Temp\vcredist_x86.exe" -ArgumentList $ArgumentList -Wait
Start-Process -FilePath "$Temp\vcredist_x64.exe" -ArgumentList $ArgumentList -Wait
Remove-Item "$Temp\vcredist*.exe"
## Extract ##
# 7-Zip
Write-Host "Extracting: 7-Zip"
@ -155,20 +145,6 @@ if ($MyInvocation.InvocationName -ne ".") {
Write-Host (" ERROR: Failed to extract files." ) -ForegroundColor "Red"
}
# Notepad++
Write-Host "Extracting: Notepad++"
try {
$ArgumentList = @(
"x", "$Temp\npp.7z", "-o$Bin\NotepadPlusPlus",
"-aoa", "-bso0", "-bse0", "-bsp0")
Start-Process -FilePath $SevenZip -ArgumentList $ArgumentList -NoNewWindow -Wait
Remove-Item "$Temp\npp.7z"
Move-Item "$Bin\NotepadPlusPlus\notepad++.exe" "$Bin\NotepadPlusPlus\notepadplusplus.exe"
}
catch {
Write-Host (" ERROR: Failed to extract files." ) -ForegroundColor "Red"
}
# ConEmu
Write-Host "Extracting: ConEmu"
try {
@ -189,7 +165,9 @@ if ($MyInvocation.InvocationName -ne ".") {
"python$Arch.zip",
"certifi.whl",
"chardet.whl",
"docopt.whl",
"idna.whl",
"pytz.whl",
"psutil$Arch.whl",
"requests.whl",
"urllib3.whl"
@ -206,23 +184,9 @@ if ($MyInvocation.InvocationName -ne ".") {
Write-Host (" ERROR: Failed to extract files." ) -ForegroundColor "Red"
}
}
try {
Copy-Item -Path "$System32\vcruntime140.dll" -Destination "$Bin\Python\x64\vcruntime140.dll" -Force
Copy-Item -Path "$SysWOW64\vcruntime140.dll" -Destination "$Bin\Python\x32\vcruntime140.dll" -Force
}
catch {
Write-Host (" ERROR: Failed to copy Visual C++ Runtime DLLs." ) -ForegroundColor "Red"
}
Remove-Item "$Temp\python*.zip"
Remove-Item "$Temp\*.whl"
## Configure ##
Write-Host "Configuring kit"
WKPause "Press Enter to open settings..."
$Cmd = "$Bin\NotepadPlusPlus\notepadplusplus.exe"
Start-Process -FilePath $Cmd -ArgumentList @("$Bin\Scripts\settings\main.py") -Wait
Start-Sleep 1
## Done ##
Pop-Location
$ArgumentList = @("-run", "$Bin\Python\x32\python.exe", "$Bin\Scripts\update_kit.py", "-new_console:n")

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,19 @@
Copyright (c) 2012 Vladimir Keleshev, <vladimir@keleshev.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Binary file not shown.

View file

@ -0,0 +1,196 @@
{
"(Root)": {
"Auto Repairs": {
"L_TYPE": "PyScript",
"L_PATH": "Scripts",
"L_ITEM": "auto_repairs.py",
"L_ELEV": "True"
},
"Auto Setup": {
"L_TYPE": "PyScript",
"L_PATH": "Scripts",
"L_ITEM": "auto_setup.py",
"L_ELEV": "True"
}
},
"Data Recovery": {
"PhotoRec (CLI)": {
"L_TYPE": "Executable",
"L_PATH": "TestDisk",
"L_ITEM": "photorec_win.exe",
"L_ELEV": "True",
"L__CLI": "True"
},
"PhotoRec": {
"L_TYPE": "Executable",
"L_PATH": "TestDisk",
"L_ITEM": "qphotorec_win.exe",
"L_ELEV": "True"
},
"TestDisk": {
"L_TYPE": "Executable",
"L_PATH": "TestDisk",
"L_ITEM": "testdisk_win.exe",
"L_ELEV": "True",
"L__CLI": "True"
}
},
"Data Transfers": {
"FastCopy (as ADMIN)": {
"L_TYPE": "Executable",
"L_PATH": "FastCopy",
"L_ITEM": "FastCopy.exe",
"L_ARGS": " /logfile=%log_dir%\\Tools\\FastCopy.log /cmd=noexist_only /utf8 /skip_empty_dir /linkdest /exclude=$RECYCLE.BIN;$Recycle.Bin;.AppleDB;.AppleDesktop;.AppleDouble;.com.apple.timemachine.supported;.dbfseventsd;.DocumentRevisions-V100*;.DS_Store;.fseventsd;.PKInstallSandboxManager;.Spotlight*;.SymAV*;.symSchedScanLockxz;.TemporaryItems;.Trash*;.vol;.VolumeIcon.icns;desktop.ini;Desktop?DB;Desktop?DF;hiberfil.sys;lost+found;Network?Trash?Folder;pagefile.sys;Recycled;RECYCLER;System?Volume?Information;Temporary?Items;Thumbs.db /to=%client_dir%\\Transfer_%iso_date%\\ ",
"L_ELEV": "True",
"Extra Code": [
"call \"%bin%\\Scripts\\init_client_dir.cmd\" /Logs /Transfer"
]
},
"FastCopy": {
"L_TYPE": "Executable",
"L_PATH": "FastCopy",
"L_ITEM": "FastCopy.exe",
"L_ARGS": " /logfile=%log_dir%\\Tools\\FastCopy.log /cmd=noexist_only /utf8 /skip_empty_dir /linkdest /exclude=$RECYCLE.BIN;$Recycle.Bin;.AppleDB;.AppleDesktop;.AppleDouble;.com.apple.timemachine.supported;.dbfseventsd;.DocumentRevisions-V100*;.DS_Store;.fseventsd;.PKInstallSandboxManager;.Spotlight*;.SymAV*;.symSchedScanLockxz;.TemporaryItems;.Trash*;.vol;.VolumeIcon.icns;desktop.ini;Desktop?DB;Desktop?DF;hiberfil.sys;lost+found;Network?Trash?Folder;pagefile.sys;Recycled;RECYCLER;System?Volume?Information;Temporary?Items;Thumbs.db /to=%client_dir%\\Transfer_%iso_date%\\ ",
"Extra Code": [
"call \"%bin%\\Scripts\\init_client_dir.cmd\" /Logs /Transfer"
]
}
},
"Diagnostics": {
"AIDA64": {
"L_TYPE": "Executable",
"L_PATH": "AIDA64",
"L_ITEM": "aida64.exe"
},
"Autoruns (with VirusTotal Scan)": {
"L_TYPE": "Executable",
"L_PATH": "Autoruns",
"L_ITEM": "Autoruns.exe",
"L_ARGS": "-e",
"Extra Code": [
"reg add HKCU\\Software\\Sysinternals\\AutoRuns /v checkvirustotal /t REG_DWORD /d 1 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns /v EulaAccepted /t REG_DWORD /d 1 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns /v shownomicrosoft /t REG_DWORD /d 1 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns /v shownowindows /t REG_DWORD /d 1 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns /v showonlyvirustotal /t REG_DWORD /d 1 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns /v submitvirustotal /t REG_DWORD /d 0 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns /v verifysignatures /t REG_DWORD /d 1 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns\\SigCheck /v EulaAccepted /t REG_DWORD /d 1 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns\\Streams /v EulaAccepted /t REG_DWORD /d 1 /f >nul",
"reg add HKCU\\Software\\Sysinternals\\AutoRuns\\VirusTotal /v VirusTotalTermsAccepted /t REG_DWORD /d 1 /f >nul"
]
},
"BleachBit": {
"L_TYPE": "Executable",
"L_PATH": "BleachBit",
"L_ITEM": "bleachbit.exe"
},
"BlueScreenView": {
"L_TYPE": "Executable",
"L_PATH": "BlueScreenView",
"L_ITEM": "BlueScreenView.exe"
},
"ERUNT": {
"L_TYPE": "Executable",
"L_PATH": "erunt",
"L_ITEM": "ERUNT.EXE",
"L_ARGS": "%client_dir%\\Backups\\Registry\\%iso_date% sysreg curuser otherusers",
"L_ELEV": "True",
"Extra Code": [
"call \"%bin%\\Scripts\\init_client_dir.cmd\" /Logs"
]
},
"HitmanPro": {
"L_TYPE": "Executable",
"L_PATH": "HitmanPro",
"L_ITEM": "HitmanPro.exe",
"Extra Code": [
"call \"%bin%\\Scripts\\init_client_dir.cmd\" /Logs"
]
},
"HWiNFO": {
"L_TYPE": "Executable",
"L_PATH": "HWiNFO",
"L_ITEM": "HWiNFO.exe",
"Extra Code": [
"for %%a in (32 64) do (",
" copy /y \"%bin%\\HWiNFO\\general.ini\" \"%bin%\\HWiNFO\\HWiNFO%%a.ini\"",
" (echo SensorsOnly=0)>>\"%bin%\\HWiNFO\\HWiNFO%%a.ini\"",
" (echo SummaryOnly=0)>>\"%bin%\\HWiNFO\\HWiNFO%%a.ini\"",
")"
]
},
"HWiNFO (Sensors)": {
"L_TYPE": "Executable",
"L_PATH": "HWiNFO",
"L_ITEM": "HWiNFO.exe",
"Extra Code": [
"for %%a in (32 64) do (",
" copy /y \"%bin%\\HWiNFO\\general.ini\" \"%bin%\\HWiNFO\\HWiNFO%%a.ini\"",
" (echo SensorsOnly=1)>>\"%bin%\\HWiNFO\\HWiNFO%%a.ini\"",
" (echo SummaryOnly=0)>>\"%bin%\\HWiNFO\\HWiNFO%%a.ini\"",
")"
]
},
"ProduKey": {
"L_TYPE": "Executable",
"L_PATH": "ProduKey",
"L_ITEM": "ProduKey.exe",
"L_ELEV": "True",
"Extra Code": [
"if exist \"%bin%\\ProduKey\" (",
" del \"%bin%\\ProduKey\\ProduKey.cfg\" 2>nul",
" del \"%bin%\\ProduKey\\ProduKey64.cfg\" 2>nul",
")"
]
},
"Snappy Driver Installer Origin": {
"L_TYPE": "Executable",
"L_PATH": "SDIO",
"L_ITEM": "SDIO.exe"
}
},
"Misc": {
"ConEmu (as ADMIN)": {
"L_TYPE": "Executable",
"L_PATH": "ConEmu",
"L_ITEM": "ConEmu.exe",
"L_ELEV": "True"
},
"ConEmu": {
"L_TYPE": "Executable",
"L_PATH": "ConEmu",
"L_ITEM": "ConEmu.exe"
},
"Everything": {
"L_TYPE": "Executable",
"L_PATH": "Everything",
"L_ITEM": "Everything.exe",
"L_ARGS": "-nodb",
"L_ELEV": "True"
},
"Notepad++": {
"L_TYPE": "Executable",
"L_PATH": "notepadplusplus",
"L_ITEM": "notepadplusplus.exe"
},
"PuTTY": {
"L_TYPE": "Executable",
"L_PATH": "PuTTY",
"L_ITEM": "PUTTY.EXE"
},
"WizTree": {
"L_TYPE": "Executable",
"L_PATH": "WizTree",
"L_ITEM": "WizTree.exe",
"L_ELEV": "True"
}
},
"Uninstallers": {
"IObit Uninstaller": {
"L_TYPE": "Executable",
"L_PATH": "IObitUninstallerPortable",
"L_ITEM": "IObitUninstallerPortable.exe"
}
}
}

View file

@ -0,0 +1,48 @@
{
"7-Zip Extra": "https://www.7-zip.org/a/7z1900-extra.7z",
"7-Zip Installer": "https://www.7-zip.org/a/7z1900.msi",
"ConEmu": "https://github.com/Maximus5/ConEmu/releases/download/v21.09.12/ConEmuPack.210912.7z",
"Python x32": "https://www.python.org/ftp/python/3.8.10/python-3.8.10-embed-win32.zip",
"Python x64": "https://www.python.org/ftp/python/3.8.10/python-3.8.10-embed-amd64.zip",
"Notepad++": "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.1.5/npp.8.1.5.portable.minimalist.7z",
"Adobe Reader DC": "https://ardownload2.adobe.com/pub/adobe/reader/win/AcrobatDC/2100120145/AcroRdrDC2100120145_en_US.exe",
"Autoruns": "https://download.sysinternals.com/files/Autoruns.zip",
"ERUNT": "http://www.aumha.org/downloads/erunt.zip",
"ESET NOD32 AV": "https://download.eset.com/com/eset/apps/home/eav/windows/latest/eav_nt64.exe",
"ESET Online Scanner": "https://download.eset.com/com/eset/tools/online_scanner/latest/esetonlinescanner_enu.exe",
"Everything32": "https://www.voidtools.com/Everything-1.4.1.1005.x86.en-US.zip",
"Everything64": "https://www.voidtools.com/Everything-1.4.1.1005.x64.en-US.zip",
"FastCopy": "https://ftp.vector.co.jp/73/10/2323/FastCopy392_installer.exe",
"FurMark": "https://geeks3d.com/dl/get/569",
"HWiNFO": "https://files1.majorgeeks.com/c8a055180587599139f8f454712dcc618cd1740e/systeminfo/hwi_702.zip",
"IOBit_Uninstaller": "https://portableapps.com/redirect/?a=IObitUninstallerPortable&s=s&d=pa&f=IObitUninstallerPortable_7.5.0.7.paf.exe",
"Intel SSD Toolbox": "https://downloadmirror.intel.com/28593/eng/Intel%20SSD%20Toolbox%20-%20v3.5.9.exe",
"Linux Reader": "https://www.diskinternals.com/download/Linux_Reader.exe",
"Macs Fan Control": "https://www.crystalidea.com/downloads/macsfancontrol_setup.exe",
"NirCmd32": "https://www.nirsoft.net/utils/nircmd.zip",
"NirCmd64": "https://www.nirsoft.net/utils/nircmd-x64.zip",
"Office Deployment Tool": "https://download.microsoft.com/download/2/7/A/27AF1BE6-DD20-4CB4-B154-EBAB8A7D4A7E/officedeploymenttool_11617-33601.exe",
"ProduKey32": "http://www.nirsoft.net/utils/produkey.zip",
"ProduKey64": "http://www.nirsoft.net/utils/produkey-x64.zip",
"PuTTY": "https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip",
"SDIO Themes": "http://snappy-driver-installer.org/downloads/SDIO_Themes.zip",
"SDIO Torrent": "http://snappy-driver-installer.org/downloads/SDIO_Update.torrent",
"Samsung Magician": "https://s3.ap-northeast-2.amazonaws.com/global.semi.static/SAMSUNG_SSD_v5_3_0_181121/CD0C7CC1BE00525FAC4675B9E502899B41D5C3909ECE3AA2FB6B74A766B2A1EA/Samsung_Magician_Installer.zip",
"ShutUp10": "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe",
"TestDisk": "https://www.cgsecurity.org/testdisk-7.2-WIP.win.zip",
"WinAIO Repair": "http://www.tweaking.com/files/setups/tweaking.com_windows_repair_aio.zip",
"Winapp2": "https://github.com/MoscaDotTo/Winapp2/archive/master.zip",
"WizTree": "https://wiztreefree.com/files/wiztree_3_39_portable.zip",
"XMPlay 7z": "https://support.xmplay.com/files/16/xmp-7z.zip?v=800962",
"XMPlay Game": "https://support.xmplay.com/files/12/xmp-gme.zip?v=515637",
"XMPlay RAR": "https://support.xmplay.com/files/16/xmp-rar.zip?v=409646",
"XMPlay WAModern": "https://support.xmplay.com/files/10/WAModern.zip?v=207099",
"XMPlay": "https://support.xmplay.com/files/20/xmplay383.zip?v=298195",
"XYplorerFree": "https://www.xyplorer.com/download/xyplorer_free_noinstall.zip",
"aria2": "https://github.com/aria2/aria2/releases/download/release-1.35.0/aria2-1.35.0-win-32bit-build1.zip",
"smartmontools": "https://1278-105252244-gh.circle-artifacts.com/0/builds/smartmontools-win32-setup-7.3-r5216.exe",
"wimlib32": "https://wimlib.net/downloads/wimlib-1.13.3-windows-i686-bin.zip",
"wimlib64": "https://wimlib.net/downloads/wimlib-1.13.3-windows-x86_64-bin.zip"
}