This greatly improves performance and reduces the binary's size (~0.2 MB vs ~5 MB).
All recent Windows versions are supported, starting with Vista.
No dialogs are created, aside from error/warning ones in case of failure.
The only dependency (aside from Windows libraries) is libhamcore.
1. ifdef DEBUG -> defined(_DEBUG) || defined(DEBUG)
In VC++ compilers, the macro is "_DEBUG", not "DEBUG".
2. If set memcheck = true, the program will be vitally slow since it will log all malloc() / realloc() / free() calls to find the cause of memory leak.
For normal debug we set memcheck = false.
Please set memcheck = true if you want to test the cause of memory leaks.
- Hash() has been removed because it was ambiguous, Md5() and Sha0() are proper replacements.
- HMacMd5() and HMacSha1() now share a common implementation handled by the new Internal_HMac() function.
- NewMd() and MdProcess() now support plain hashing (without the key).
- NewMd(), SetMdKey() and MdProcess() now check the OpenSSL functions' return value and in case of failure a debug message is printed along with the error string, if available.
- SetMdKey()'s return value has been changed from void to bool, so that it's possible to know whether the function succeeded or not.
- MdProcess()' return value has been changed from void to UINT (unsigned int) and the function now returns the number of bytes written by HMAC_Final() or EVP_DigestFinal_ex().
[src/Mayaqua/Microsoft.c:8773]: (style) The function 'EnumAllWindow' is never used.
[src/Mayaqua/Microsoft.c:1411]: (style) The function 'MsBufToRegSubkeys' is never used.
[src/Mayaqua/Microsoft.c:5373]: (style) The function 'MsChangeIconOnTrayEx2' is never used.
[src/Mayaqua/Microsoft.c:3426]: (style) The function 'MsCheckFileDigitalSignature' is never used.
[src/Mayaqua/Microsoft.c:10764]: (style) The function 'MsCreateTempFile' is never used.
[src/Mayaqua/Microsoft.c:10702]: (style) The function 'MsCreateTempFileByExt' is never used.
[src/Mayaqua/Microsoft.c:1290]: (style) The function 'MsDeleteClipboard' is never used.
[src/Mayaqua/Microsoft.c:12300]: (style) The function 'MsDetermineIsLockedByWtsApi' is never used.
[src/Mayaqua/Microsoft.c:7296]: (style) The function 'MsEnableRemoteDesktop' is never used.
[src/Mayaqua/Microsoft.c:2076]: (style) The function 'MsExecuteExW' is never used.
[src/Mayaqua/Microsoft.c:2454]: (style) The function 'MsExtractCab' is never used.
[src/Mayaqua/Microsoft.c:2383]: (style) The function 'MsExtractCabFromMsi' is never used.
[src/Mayaqua/Microsoft.c:2549]: (style) The function 'MsExtractCabinetFileFromExe' is never used.
[src/Mayaqua/Microsoft.c:2575]: (style) The function 'MsExtractCabinetFileFromExeW' is never used.
[src/Mayaqua/Microsoft.c:1236]: (style) The function 'MsFreeEventLog' is never used.
[src/Mayaqua/Microsoft.c:12450]: (style) The function 'MsFreeIsLocked' is never used.
[src/Mayaqua/Microsoft.c:4101]: (style) The function 'MsFreeLibrary' is never used.
[src/Mayaqua/Microsoft.c:2503]: (style) The function 'MsGetCabarcExeFilename' is never used.
[src/Mayaqua/Microsoft.c:1300]: (style) The function 'MsGetClipboardOwnerProcessId' is never used.
[src/Mayaqua/Microsoft.c:15237]: (style) The function 'MsGetCommonAppDataDir' is never used.
[src/Mayaqua/Microsoft.c:15406]: (style) The function 'MsGetCommonAppDataDirW' is never used.
[src/Mayaqua/Microsoft.c:15289]: (style) The function 'MsGetCommonDesktopDir' is never used.
[src/Mayaqua/Microsoft.c:15281]: (style) The function 'MsGetCommonProgramsDir' is never used.
[src/Mayaqua/Microsoft.c:15277]: (style) The function 'MsGetCommonStartMenuDir' is never used.
[src/Mayaqua/Microsoft.c:3136]: (style) The function 'MsGetComputerNameFull' is never used.
[src/Mayaqua/Microsoft.c:4984]: (style) The function 'MsGetCurrentProcessExeName' is never used.
[src/Mayaqua/Microsoft.c:2763]: (style) The function 'MsGetFileVersionW' is never used.
[src/Mayaqua/Microsoft.c:15241]: (style) The function 'MsGetLocalAppDataDir' is never used.
[src/Mayaqua/Microsoft.c:15468]: (style) The function 'MsGetLocalAppDataDirW' is never used.
[src/Mayaqua/Microsoft.c:8081]: (style) The function 'MsGetMs' is never used.
[src/Mayaqua/Microsoft.c:15333]: (style) The function 'MsGetMyDocumentsDir' is never used.
[src/Mayaqua/Microsoft.c:15459]: (style) The function 'MsGetMyDocumentsDirW' is never used.
[src/Mayaqua/Microsoft.c:11583]: (style) The function 'MsGetNetCfgRegKeyName' is never used.
[src/Mayaqua/Microsoft.c:15317]: (style) The function 'MsGetPersonalAppDataDir' is never used.
[src/Mayaqua/Microsoft.c:15325]: (style) The function 'MsGetPersonalDesktopDir' is never used.
[src/Mayaqua/Microsoft.c:15301]: (style) The function 'MsGetPersonalProgramsDir' is never used.
[src/Mayaqua/Microsoft.c:15293]: (style) The function 'MsGetPersonalStartMenuDir' is never used.
[src/Mayaqua/Microsoft.c:15309]: (style) The function 'MsGetPersonalStartupDir' is never used.
[src/Mayaqua/Microsoft.c:1737]: (style) The function 'MsGetPhysicalMacAddress' is never used.
[src/Mayaqua/Microsoft.c:4113]: (style) The function 'MsGetProcAddress' is never used.
[src/Mayaqua/Microsoft.c:15382]: (style) The function 'MsGetProgramFilesDirW' is never used.
[src/Mayaqua/Microsoft.c:15273]: (style) The function 'MsGetProgramFilesDirX64' is never used.
[src/Mayaqua/Microsoft.c:15269]: (style) The function 'MsGetProgramFilesDirX86' is never used.
[src/Mayaqua/Microsoft.c:15394]: (style) The function 'MsGetProgramFilesDirX86W' is never used.
[src/Mayaqua/Microsoft.c:715]: (style) The function 'MsGetSystemLocaleId' is never used.
[src/Mayaqua/Microsoft.c:15345]: (style) The function 'MsGetUserName' is never used.
[src/Mayaqua/Microsoft.c:15349]: (style) The function 'MsGetUserNameEx' is never used.
[src/Mayaqua/Microsoft.c:15480]: (style) The function 'MsGetUserNameExW' is never used.
[src/Mayaqua/Microsoft.c:15353]: (style) The function 'MsGetWinTempDir' is never used.
[src/Mayaqua/Microsoft.c:15484]: (style) The function 'MsGetWinTempDirW' is never used.
[src/Mayaqua/Microsoft.c:15366]: (style) The function 'MsGetWindowDirW' is never used.
[src/Mayaqua/Microsoft.c:9042]: (style) The function 'MsGetWindowOwnerProcessExeNameW' is never used.
[src/Mayaqua/Microsoft.c:15261]: (style) The function 'MsGetWindowsDrive' is never used.
[src/Mayaqua/Microsoft.c:15378]: (style) The function 'MsGetWindowsDriveW' is never used.
[src/Mayaqua/Microsoft.c:1251]: (style) The function 'MsInitEventLog' is never used.
[src/Mayaqua/Microsoft.c:7937]: (style) The function 'MsInstallService' is never used.
[src/Mayaqua/Microsoft.c:7128]: (style) The function 'MsIsCurrentDesktopAvailableForVnc' is never used.
[src/Mayaqua/Microsoft.c:2352]: (style) The function 'MsIsDirectoryW' is never used.
[src/Mayaqua/Microsoft.c:1979]: (style) The function 'MsIsFileLockedW' is never used.
[src/Mayaqua/Microsoft.c:1947]: (style) The function 'MsIsLocalDriveW' is never used.
[src/Mayaqua/Microsoft.c:12241]: (style) The function 'MsIsPasswordEmpty' is never used.
[src/Mayaqua/Microsoft.c:1587]: (style) The function 'MsIsProcessExists' is never used.
[src/Mayaqua/Microsoft.c:1618]: (style) The function 'MsIsProcessExistsW' is never used.
[src/Mayaqua/Microsoft.c:1581]: (style) The function 'MsIsProcessIdExists' is never used.
[src/Mayaqua/Microsoft.c:7386]: (style) The function 'MsIsRemoteDesktopCanEnableByRegistry' is never used.
[src/Mayaqua/Microsoft.c:7228]: (style) The function 'MsIsTerminalServiceMultiUserInstalled' is never used.
[src/Mayaqua/Microsoft.c:5349]: (style) The function 'MsIsTrayInited' is never used.
[src/Mayaqua/Microsoft.c:1707]: (style) The function 'MsIsUseWelcomeLogin' is never used.
[src/Mayaqua/Microsoft.c:7407]: (style) The function 'MsIsWin2000' is never used.
[src/Mayaqua/Microsoft.c:4017]: (style) The function 'MsLoadLibraryRawW' is never used.
[src/Mayaqua/Microsoft.c:2220]: (style) The function 'MsMakeDirEx' is never used.
[src/Mayaqua/Microsoft.c:12425]: (style) The function 'MsNewIsLocked' is never used.
[src/Mayaqua/Microsoft.c:3112]: (style) The function 'MsNoSleepEnd' is never used.
[src/Mayaqua/Microsoft.c:3079]: (style) The function 'MsNoSleepStart' is never used.
[src/Mayaqua/Microsoft.c:5083]: (style) The function 'MsPrintProcessList' is never used.
[src/Mayaqua/Microsoft.c:13117]: (style) The function 'MsRegAccessMaskFor64Bit' is never used.
[src/Mayaqua/Microsoft.c:1382]: (style) The function 'MsRegDeleteSubkeys' is never used.
[src/Mayaqua/Microsoft.c:14064]: (style) The function 'MsRegGetValueTypeAndSize' is never used.
[src/Mayaqua/Microsoft.c:14109]: (style) The function 'MsRegGetValueTypeAndSizeW' is never used.
[src/Mayaqua/Microsoft.c:14226]: (style) The function 'MsRegNewKey' is never used.
[src/Mayaqua/Microsoft.c:13903]: (style) The function 'MsRegReadValue' is never used.
[src/Mayaqua/Microsoft.c:13964]: (style) The function 'MsRegReadValueW' is never used.
[src/Mayaqua/Microsoft.c:1472]: (style) The function 'MsRegSubkeysToBuf' is never used.
[src/Mayaqua/Microsoft.c:13528]: (style) The function 'MsRegWriteValue' is never used.
[src/Mayaqua/Microsoft.c:13566]: (style) The function 'MsRegWriteValueW' is never used.
[src/Mayaqua/Microsoft.c:3205]: (style) The function 'MsRunAsUserEx' is never used.
[src/Mayaqua/Microsoft.c:6401]: (style) The function 'MsScmDispatcher' is never used.
[src/Mayaqua/Microsoft.c:2849]: (style) The function 'MsSetFileToHiddenW' is never used.
[src/Mayaqua/Microsoft.c:8099]: (style) The function 'MsSetThreadPriorityLow' is never used.
[src/Mayaqua/Microsoft.c:3511]: (style) The function 'MsSetWow64FileSystemRedirectionEnable' is never used.
[src/Mayaqua/Microsoft.c:12469]: (style) The function 'MsShutdownEx' is never used.
[src/Mayaqua/Microsoft.c:5740]: (style) The function 'MsStopUserModeFromService' is never used.
[src/Mayaqua/Microsoft.c:2260]: (style) The function 'MsUniDirectoryDelete' is never used.
[src/Mayaqua/Microsoft.c:2290]: (style) The function 'MsUniFileDelete' is never used.
[src/Mayaqua/Microsoft.c:6053]: (style) The function 'MsUserMode' is never used.
[src/Mayaqua/Microsoft.c:1200]: (style) The function 'MsWriteEventLog' is never used.
[src/Mayaqua/Microsoft.c:7684]: (style) The function 'EnumAllWindowEx' is never used.
[src/Mayaqua/Microsoft.c:9587]: (style) The function 'MsCreateTempFileNameByExt' is never used.
[src/Mayaqua/Microsoft.c:1794]: (style) The function 'MsDirectoryDelete' is never used.
[src/Mayaqua/Microsoft.c:1876]: (style) The function 'MsExtractCabFromMsiW' is never used.
[src/Mayaqua/Microsoft.c:1937]: (style) The function 'MsExtractCabW' is never used.
[src/Mayaqua/Microsoft.c:2047]: (style) The function 'MsExtractResourceFromExeW' is never used.
[src/Mayaqua/Microsoft.c:1806]: (style) The function 'MsFileDelete' is never used.
[src/Mayaqua/Microsoft.c:13842]: (style) The function 'MsGetCommonAppDataDir' is never used.
[src/Mayaqua/Microsoft.c:2105]: (style) The function 'MsGetFileVersion' is never used.
[src/Mayaqua/Microsoft.c:1344]: (style) The function 'MsGetPhysicalMacAddressFromApi' is never used.
[src/Mayaqua/Microsoft.c:1415]: (style) The function 'MsGetPhysicalMacAddressFromNetbios' is never used.
[src/Mayaqua/Microsoft.c:7975]: (style) The function 'MsGetProcessExeNameW' is never used.
[src/Mayaqua/Microsoft.c:1253]: (style) The function 'MsGetProcessNameFromId' is never used.
[src/Mayaqua/Microsoft.c:1534]: (style) The function 'MsIsFileLocked' is never used.
[src/Mayaqua/Microsoft.c:1495]: (style) The function 'MsIsLocalDrive' is never used.
[src/Mayaqua/Microsoft.c:11079]: (style) The function 'MsIsLockedThreadProc' is never used.
[src/Mayaqua/Microsoft.c:6314]: (style) The function 'MsIsRemoteDesktopEnabled' is never used.
[src/Mayaqua/Microsoft.c:2184]: (style) The function 'MsNoSleepThread' is never used.
[src/Mayaqua/Microsoft.c:2224]: (style) The function 'MsNoSleepThreadVista' is never used.
[src/Mayaqua/Microsoft.c:12681]: (style) The function 'MsRegGetValueTypeAndSizeEx' is never used.
[src/Mayaqua/Microsoft.c:12722]: (style) The function 'MsRegGetValueTypeAndSizeExW' is never used.
[src/Mayaqua/Microsoft.c:12835]: (style) The function 'MsRegNewKeyEx' is never used.
[src/Mayaqua/Microsoft.c:12528]: (style) The function 'MsRegReadValueEx' is never used.
[src/Mayaqua/Microsoft.c:12585]: (style) The function 'MsRegReadValueExW' is never used.
[src/Mayaqua/Microsoft.c:12161]: (style) The function 'MsRegWriteValueEx' is never used.
[src/Mayaqua/Microsoft.c:12195]: (style) The function 'MsRegWriteValueExW' is never used.
[src/Mayaqua/Microsoft.c:2460]: (style) The function 'MsRunAsUserExInner' is never used.
[src/Mayaqua/Microsoft.c:2162]: (style) The function 'MsSetFileToHidden' is never used.
[src/Mayaqua/Microsoft.c:1818]: (style) The function 'MsUniIsDirectory' is never used.
[src/Mayaqua/Microsoft.c:8771]: (style) The function 'MsCreateTempFileName' is never used.
[src/Mayaqua/Microsoft.c:1619]: (style) The function 'MsExtractResourceFromExe' is never used.
[src/Mayaqua/Microsoft.c:1595]: (style) The function 'MsGetCabarcExeFilenameW' is never used.
[src/Mayaqua/Microsoft.c:1568]: (style) The function 'MsIsDirectory' is never used.
[src/Mayaqua/Microsoft.c:10153]: (style) The function 'MsIsLockedWindowHandlerWindowProc' is never used.
[src/Mayaqua/Microsoft.c:5621]: (style) The function 'MsIsRemoteDesktopAvailable' is never used.
[src/Mayaqua/Microsoft.c:11787]: (style) The function 'MsRegGetValueTypeAndSizeEx2W' is never used.
[src/Mayaqua/Microsoft.c:11502]: (style) The function 'MsRegGetValueTypeAndSizeEx2' is never used.
* Improvements on the behavior of the reinstall command of Windows Virtual Network Adapters.
When reinstalling the device driver of the Virtual Network Driver card, we changed the behavior as to cleanup the older driver before installing the newer driver.
* Improvement of the senetence. Add the same sentence to the Taiwan language file.
* Delete the old MsUpgradeVLanWithoutLock_old() function.
When loading the DLL file by the LoadLibrary() function in Windows VPN programs, we changed the behavior not to search the current directory. Based on this improvement, even if there are untrusted DLL files in the calendar directory, it is now safe to avoid the problem of unexpected security problem caused by the default loading behavior of Windows. Acknowledgments: This is based on a report by Herman Groeneveld, aka Sh4d0wman.
When installing a new device driver of the Virtual Network Driver card, we changed the initial random MAC address from 00-AC-xx-xx-xx-xx to 5E-xx-xx-xx-xx-xx. This realizes the compliance with the local address bit of the MAC address rule.