CMDebug 28.0:
The CMDebug and TCC-RT installers are built with a new version of Advanced Installer.
Many security, performance & size improvements.
CMDebug / IDE is now CET Shadow Stack compatible.
The GUI framework library has been updated.
Improved support for high resolution displays and multiple monitors.
The Scintilla edit control has been updated to version 5.1. The lexer (lexilla.dll) has been separated from the editor (scintilla.dll). There are a number of improvements in readability and speed for high resolution displays.
TCC-RT:
Many security, performance & size improvements.
TCC-RT is now CET Shadow Stack compatible.
TCC-RT file expansion now supports "~\" (home directory) syntax. If the filename is ~, or begins with a ~\ (or ~/), TCC will substitute to the user's home directory, as defined by the HOME environment variable. (If HOME doesn't exist, TCC will look for %HOMEDRIVE + HOMEPATH.) For example:
dir ~\
copy foo ~\foofolder
TCC-RT file expansion now supports the predefined Windows folders. The syntax is :foldername where foldername can be:
AccountPictures
AdminTools
AppCaptures
ApplicationShortcuts
CameraRoll
CDBurning
CommonAdminTools
CommonOEMLinks
CommonPrograms
CommonStartMenu
CommonStartMenuPlaces
CommonStartup
CommonTemplates
Contacts
Cookies
Desktop
DeviceMetadataStore
Documents
DocumentsLibrary
Downloads
Favorites
Fonts
GameTasks
History
ImplicitAppShortcuts
InternetCache
Libraries
Links
LocalAppData
LocalAppDataLow
LocalDocuments
LocalDownloads
LocalizedResourcesDir
LocalMusic
LocalPictures
LocalVideos
Music
MusicLibrary
Nethood
OneDrive
OriginalImages
PhotoAlbums
PicturesLibrary
Pictures
Playlists
PrintHood
Profile
ProgramData
ProgramFiles
ProgramFilesX64
ProgramFilesX86
ProgramFilesCommon
ProgramFilesCommonX64
ProgramFilesCommonX86
Programs
Public
PublicDesktop
PublicDocuments
PublicDownloads
PublicGameTasks
PublicLibraries
PublicMusic
PublicPictures
PublicRingtones
PublicUserTiles
PublicVideos
QuickLaunch
Recent
RecordedTVLibrary
ResourceDir
RetailDemo
Ringtones
RoamingAppData
RoamedTileImages
RoamingTiles
SampleMusic
SamplePictures
SamplePlayLists
SampleVideos
SavedGames
SavedPictures
SavedSearches
Screenshots
SearchHistory
SearchTemplates
SendTo
SidebarDefaultParts
SidebarParts
SkyDrive
SkyDriveCameraRoll
SkyDriveDocuments
SkyDrivePictures
StartMenu
Startup
System
SystemX86
Templates
UserPinned
UserProfiles
UserProgramFiles
UserProgramFilesCommon
Videos
VideosLibrary
Windows
These folder names can be used in any internal TCC-RT command that takes filenames. For example:
dir :downloads
copy picture.jpg :pictures\myfolder1\
Help:
The help is built with a new version (8.3) of Help & Manual.
The .chm help (obsolete, unsupported, and deprecated by Microsoft) has been changed to .ewriter format. An eWriter eBook is WebHelp stored in a single file, and the eWriter.exe app is used to display the help. The eWriter format combines the benefits of CHM and WebHelp, eliminating the disadvantages of both. It uses the Windows HTML rendering engine to display the content, with support for CSS3, HTML5, JavaScript and media. This will allow us (in future versions) to incorporate tutorials and videos in the help file.
The new eWriter format includes support for high-resolution displays (.chm does not).
Unlike .chm help files, The eWrite HELP can be opened from network drives on local networks.
Repeated calls to HELP will open in the same help window.
Updated Variable Functions:
@FILESIZE - Now supports returning the size of file streams. @FILESIZE now also supports retrieving file sizes for HTTP and HTTPS files. (Note that due to HTTP protocol limitations, you cannot use wildcards or scan subdirectories.)
Updated Commands:
FORCEMIN - Force the window to be minimized even if the thread that owns the window is not responding.
VDESKTOP=id - Move the window to another virtual desktop. id can be either a desktop number (1-n), the GUID for that desktop, or the desktop name. See VDESKTOP for more details.
/V:* - Displays all of the shell verbs and their commands for the specified extension.
If you are deleting a stream, DEL will check for a symlink and delete the stream from the linked file. (Windows does not support deleting a symlink'd stream.)
/\ - Display directory names with a trailing \.
/Domain=domain - The NetBIOS name of the domain to enumerate. If you do not specify a domain, ENUMSERVERS uses the primary domain.
/K="..." - The CA signed client public key used when authenticating (SSH only). When authenticating via public key authentication this setting may be set to the CA signed client's public key. This is useful when the server has been configured to trust client keys signed by a particular CA. For example:
/K="[email protected] AAAAB3NzaC1yc2EAAAADAQABAAAB..."
The algorithm such as [email protected] in the above string is used as part of the authentication process. To use a different algorithm simply change this value. For instance all of the following are acceptable with the same signed public key:
•[email protected] AAAAB3NzaC1yc2EAAAADAQABAAAB...
•[email protected] AAAAB3NzaC1yc2EAAAADAQABAAAB...
•[email protected] AAAAB3NzaC1yc2EAAAADAQABAAAB...
/T=nnn - If this is set, the socket's keep-alive option is enabled, and TCP keep-alive packets will be sent periodically to maintain the connection. nnn is the inactivity time in seconds before a TCP keep-alive packet is sent.
You can now specify which library to use for a function name (allowing you to use the same function names in different libraries). To specify a particular library and function, use the syntax:
library$function
Where library is the library file name, and function the name of the function.
If you don't specify a library name, TCC will use the old format and use the first matching function name it finds in the library list.
/N - LIBRARY with no arguments will display the function names in the library list. If you specify /N and no other arguments, LIBRARY will show the library name + function name in the library$function format.
/\ - Display directory names with a trailing \.
/VDESKTOP=id - Start the app on another virtual desktop. id can be either a desktop number (1-n), the GUID for that desktop, or the desktop name. See VDESKTOP for more details. Note that Windows doesn't have an API to actually start on another desktop, so TCC starts it on the local desktop and them immediately moves it -- so you'll see a flash when the window starts and then disappears.
The PID can be hex if it is prefixed with a leading 0x.
/Ne - Don't display errors.
/R - Delete the process tree (the specified process and all of its child processes).
The PID can be hex if it is prefixed with a leading 0x.
/R - Show the process tree (the specified process and all of its child processes).
Textpipeengine64.dll has been updated to version 11.8.1.
/Simple has some new redaction filters which are designed to work inside restriction filters.
89 Remove diacritics
90 Mainframe dump
91 Redact x-over text
92 Redact x-over digits
94 Redact x-over non-blanks
95 Replace with blanks
96 Redact with pseudo NHS
97 Redact with pseudo SSN
98 Redact with pseudo bank number
/\ - Display directory names with a trailing \.
VDESKTOP=id - Move the window to another virtual desktop. id can be either a desktop number (1-n), the GUID for that desktop, or the desktop name. See VDESKTOP for more details.
WMIQUERY now supports remote queries. The namespace argument for remote servers will look like "\\remote-server\root\cimv2" (substitute your server name for "remote-server").
/USER=username - The user name to use for remote queries.
/PASSWORD=password - The password to use for remote queries.
/L - Don't separate records with a CR/LF. (This is probably only useful when you are querying single-line records.)
New settings dialogs (some require your system / device to be configured to support the option):
ActivityHistory
AdvancedDisplay
AppDiagnostics
AppVolume
Audio
AutomaticFileDownloads
Broadcasting
Clipboard
DeliveryOptimization
Documents
DownloadMaps
Encryption
EyeTracker
FindMyDevice
Fonts
GameBar
GameDVR
GameMode
GraphicsSettings
InkingAndTyping
Nightlight
Notifications
Phone
PhoneCalls
Pictures
RemoteDesktop
SharedExperiences
SigninOptions
Sound
Tasks
Touchpad
Troubleshoot
VideoPlayback
Videos
VoiceActivation
WiFiCalling
WindowsHelloFace
WindowsHelloFingerprint
WindowSecurity
YourPhone
New Commands:
Define variables that are local to a library function or to a batch file. The syntax is:
LOCAL var1, var2, ...
LOCAL will save the existing values of the specified environment variables (if any) and then delete the variable from the environment. You can then SET a new variable with that name; when the library function or batch file exits, the local variables are deleted from the environment and the previous values (if any) are restored.
The SSHEXEC command establishes a Secure Shell (SSH) connection to a server and starts up the user's default shell. Press Ctrl-C to disconnect from the other system. The syntax is:
SSHEXEC [/A /F filename /Gn /H fwhost /IPV6 /R port /S /T type /U user /P password] host /L name[:pssword] "command ..."
/A(utodetect firewall)
/F(ilename for host stdin)
/G (logging level)
/H (firewall host)
/IPv6
/L (user:password)
/P (firewall password)
/R(emote port)
/S(tatus messages)
/T (firewall type)
/U (Firewall user name)
host - Host name
command - Command to pass to the default host shell
If you don't specify a username, SSHEXEC will use the current username. You can provide a password on the command line by appending it to the username (i.e., "User:Password"). If you don't provide a password, SSHEXEC will prompt for it.
If you want to do redirection on the remote system, enclose the command argument list in double quotes. The double quotes will be removed before passing the commands to the remote system.
SSHEXEC will display the host name & user name and prompt for a line of input, then send it to the host shell and return to the prompt to wait for the next line. SSHEXEC will display any output sent by the host to STDOUT and STDERR. When you type "exit" at the prompt, or the host disconnects SSHEXEC will exit.
Manage Windows 10 virtual desktops (requires Windows 10 build 21313 or later). VDESKTOP lets you create, remove, or switch desktops. The syntax is:
VDESKTOP [[/N="name"] /C [/W="file"] /R id /S [id] - +]
/C | Create a new desktop |
/R | Remove the specified desktop. Id can be a desktop number (1 - n) or the GUID for that desktop. |
/S | Switch to the specified desktop. If id isn't specified, switch to the desktop created with /C. id can either be a desktop number (1 - n) or the GUID for that desktop. |
/N="name" | You can optionally specify a desktop name. If you don't specify a name, you need to use a desktop number (1 - n) or the desktop GUID. Note that with the current Windows builds, the name is not updated in the Task View, though it is usable with subsequent VDESKTOP commands, and it will be displayed properly when the system is restarted. |
/W="file" | When used with /C, /W specifies the image file to use for the background wallpaper for the desktop. Note that with the current Windows builds, the background will not be updated until the system is restarted. |
Use WMI to run methods on a local or remote machine. You must be running in an elevated session. The syntax is:
WMIRUN /USER=user /PASSWORD=password /CLASS=classname /METHOD=methodname networkresource command
/USER=username - The user name to use for remote queries
/PASSWORD=password - The password to use for remote queries
/CLASS=classname - The WMI class name
/METHOD=methodname - The WMI method name
networkresource - WMI namespace. The namespace argument for remote servers will look something like "\\remote-server\root\cimv2" (substitute your server name for "remote-server").
command - The command you want WMI to run.
For example, this command terminates process 26568 on the local machine:
WMIRUN /method=Terminate /class=Win32_Process "\\.\root\CIMV2" Win32_Process.Handle="26568"