The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Archive for the ‘Windows 8.1’ Category

A year ago on Telegram: “Do I need to use GarbageCollectAtoms in Delphi? I used it in delphi 7, but I dont know what is benefit. 😐”

Posted by jpluimers on 2022/10/20

Last week I found out that I had some Windows ATOM issues before, but this beats them easily was still a draft in stead if in the blog queue.

I got reminded to it by someone asking on Telegram about

“Do I need to use GarbageCollectAtoms in Delphi? I used it in delphi 7, but I dont know what is benefit. 😐”.

The short answer is: yes, if your Delphi application does terminate in a way that the Controls unit cannot cleanly unload (and cannot free the Windows atoms) or leaks Windows atoms in a different way. I have been in that situation and that’s why I wrote the above blog post that got published in 2016.

The longer answer is likely no, both the Windows atom and registered Windows message table share a heap and that registered VCL Windows message leaking bug got fixed some 10 years ago in Delphi XE2, see:

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Development, Event, Power User, Software Development, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows NT, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Vista, Windows XP | Leave a Comment »

I had some Windows ATOM issues before, but this beats them easily

Posted by jpluimers on 2022/10/19

I’ve had some issues with Windows ATOM tables filling up, but nothing like this security bypass:

A new Windows code injection technique, atombombing, which bypasses current security solutions.

Source: AtomBombing: Brand New Code Injection for Windows – Breaking Malware [WayBack] with source code at BreakingMalwareResearch/atom-bombing: Brand New Code Injection for Windows

Note that since writing the first draft, the above AtomBombing article moved via Wayback: blog.ensilo.com to [Wayback/Archive.is] AtomBombing – A Brand New Code Injection Technique for Windows | FortiGuard Labs.

Read the rest of this entry »

Posted in Development, FortiGate/FortiClient, Hardware, Network-and-equipment, Power User, Security, Software Development, VPN, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows 9, Windows Development, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Vista, Windows XP | Leave a Comment »

Windows: require UAC elevation to enter password instead of a simple “Yes” helps preventing USB HID attacks

Posted by jpluimers on 2022/06/17

Of course you should be careful inserting random USB devices. Apart from USB HID attacks, they could perform other attacks like DMA ones.

To help preventing automated UAC elevation, you can make it harder to activate UAC by requiring a password. I think the below registry trick and policy is supported as of Windows 7, but it could be more recent (i.e. Windows 8.1).

The video below shows the trick, but does not document it in text. So here we go [WayBack] Windows doesn’t ask for your password when changing settings – Windows 10 Forums

reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorUser" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableInstallerDetection" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableSecureUIAPaths" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableUIADesktopToggle" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "FilterAdministratorToken" /t REG_DWORD /d "1" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t REG_DWORD /d "1" /f

(A more elaborate batch file with lots more hardening is at [WayBack] Win 10 edits · GitHub)

The registry trick is especially useful for Home editions of Windows which do not allow you to run the Security Policy control panel applet secpol.msc.

The first two values explained at [WayBack] How to configure Windows UAC prompt behavior for admins and users – gHacks Tech News:

ConsentPromptBehaviorAdmin

This key defines the User Account Control behavior for system administrators. The default value is set to prompt but do not require credentials to be entered. Here are all possible values:

  • 0: A value of 0 allows administrators to perform operations that require elevation without consent (meaning prompts) or credentials (meaning authentication).
  • 1: A value of 1 requires the admin to enter username and password when operations require elevated privileges on a secure desktop.
  • 2: The value of 2 displays the UAC prompt that needs to be permitted or denied on a secure desktop. No authentication is required.
  • 3:  A value of 3 prompts for credentials.
  • 4: A value of 4 prompts for consent by displaying the UAC prompt.
  • 5: The default value of 5 prompts for consent for non-Windows binaries.

ConsentPromptBehaviorUser

  • 0: A value of 0 will automatically deny any operation that requires elevated privileges if executed by standard users.
  • 1: The value of 1 will display a prompt to enter the username and password of an administrator to run the operation with elevated privileges on the secure desktop.
  • 3: The default value of 3 prompts for credentials on a secure desktop.

The changes should take effect immediately. You can for instance set the admin behavior to 0 so that no prompts are displayed, and user behavior to 0 as well to prevent them from running operations that require elevated privileges.

Related:

Read the rest of this entry »

Posted in Power User, Windows, Windows 10, Windows 8, Windows 8.1 | Leave a Comment »

How can you export the Visual Studio Code extension list? (via: Stack Overflow)

Posted by jpluimers on 2022/06/16

Adapted from [Archive.is] How can you export the Visual Studio Code extension list? – Stack Overflow, presuming that code is on the PATH:

  1. From the command-line interface on MacOS, Linux, BSD or on Windows with git installed:
    code --list-extensions | xargs -L 1 echo code --install-extension
  2. From the command-line interface on MacOS, Linux, BSD or on Windows without git installed:
    code --list-extensions | % { "code --install-extension $_" }

    or, as I think, more clearly (see also [WayBack] syntax – What does “%” (percent) do in PowerShell? – Stack Overflow):

    code --list-extensions | foreach { "code --install-extension $_" }

    or even more explanatory:

    code --list-extensions | ForEach-Object { "code --install-extension $_" }
  3. From the command-line interface on Windows as a plain cmd.exe command:
    @for /f %l in ('code --list-extensions') do @echo code --install-extension %l
  4. On Windows as a plain cmd.exe batch file (in a .bat/.cmd script):
    @for /f %%l in ('code --list-extensions') do @echo code --install-extension %%l
  5. The above two on Windows can also be done using PowerShell:
    PowerShell -Command "code --list-extensions | % { """""code --install-extension $_""""" }"

    Note that here too, the % can be expanded into foreach or ForEach-Object for clarity.

All of the above prepend “code --install-extension ” (note the trailing space) before each installed Visual Studio Code extension.

They all give you a list like this which you can execute on any machine having Visual Studio Code installed and its code on the PATH, and a working internet connection:

code --install-extension DavidAnson.vscode-markdownlint
code --install-extension ms-vscode.powershell
code --install-extension yzhang.markdown-all-in-onex

(This is about the minimum install for me to edit markdown documents and do useful things with PowerShell).

Of course you can pipe these to a text-file script to execute them later on.

The double-quote escaping is based on [Wayback/Archive.is] How to escape PowerShell double quotes from a .bat file – Stack Overflow:

you need to escape the " on the command line, inside a double quoted string. From my testing, the only thing that seems to work is quadruple double quotes """" inside the quoted parameter:

powershell.exe -command "echo '""""X""""'"

Via: [Archive.is] how to save your visual studio code extension list – Google Search

--jeroen

Posted in *nix, *nix-tools, .NET, bash, Batch-Files, CommandLine, Console (command prompt window), Development, Mac OS X / OS X / MacOS, Power User, PowerShell, PowerShell, Software Development, Visual Studio and tools, vscode Visual Studio Code, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Development, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, WSL Windows Subsystem for Linux, xargs | Leave a Comment »

Chocolatey on Windows 7: “You must provide a value expression on the right-hand side of the ‘-‘ operator.”

Posted by jpluimers on 2022/06/08

One of the places explaining a more and more frequent error on Windows 7 installations is [Wayback/Archive.is] “You must provide a value expression on the right-hand side of the ‘-‘ operator.” · Issue #29 · shiftkey/chocolatey-beyondcompare:

Read the rest of this entry »

Posted in Chocolatey, CommandLine, Development, Microsoft Surface on Windows 7, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2 | Leave a Comment »

Windows: shutdown or reboot while preserving most of the running apps has been possible since…

Posted by jpluimers on 2022/05/26

Vista!

Shutting down or rebooting Windows allowing existing applications to reopen

Windows Vista introduced the /g switch in shutdown.exe and was unchanged in Windows 7:

    /g         Shutdown and restart the computer. After the system is
               rebooted, restart any registered applications.

I never noticed it until Windows 10 which began actively use it when applying system updates: then suddenly many of the previously running applications would reopen during startup.

Read the rest of this entry »

Posted in Power User, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Vista, Windows XP | Leave a Comment »

Windows 8.1: default Windows Explorer to open “This PC” instead of “Libraries” without duplicating the taskbar icon

Posted by jpluimers on 2022/05/20

Every now and then you revisit old Windows versions. It seems a fact of life.

If course those lack more recent features, one of which is the default View with which Windows Explorer starts.

In Windows 10 you can switch it between “This PC” and “Quick Access”. Not so with Windows 8.1.

Read the rest of this entry »

Posted in Power User, Windows, Windows 10, Windows 8.1 | Leave a Comment »

Wow, the Windows 3.x winfile.exe File Manager still lives on!

Posted by jpluimers on 2022/04/01

By sheer luck, Jen Gentleman pointed out that winfile.exe still lives on:

The source is at [Wayback/Archive.is] microsoft/winfile: Original Windows File Manager (winfile) with enhancements, and it looks exactly like the Windows 3.x through Windows NT 4.0 days.

Read the rest of this entry »

Posted in Apri1st, Fun, Power User, Windows, Windows 10, Windows 3.11, Windows 7, Windows 8, Windows 8.1, Windows NT | Leave a Comment »

Booting Windows 10 to the recovery console command prompt

Posted by jpluimers on 2022/03/01

I bumped into an old draft on notes on NTFS boot issues.

A while ago, I wanted to boot in the Windows 10 “Safe Mode” console, but the F8 option during the boot process was gone.

So I wondered how to get there. There seem to be a few ways, of which almost all require a functioning Windows installation. When you have one, it is relatively easy, as these options will work as summarised from [Wayback] How to open the Windows 10 recovery console:

  • Hold the physical Shift key when choosing “Reboot” in the user interface. There are various ways to get to the “Power” button:
    • in the lower right corner at the logon-screen
    • in the lower right corner at the lock-screen
    • in the lower right corner after pressing CtrlAltDel
    • in the lower left corner of the “Start” menu
  • In the Settings app, there used to be an “Advanced Startup” feature, but I could not find that any more in Windows 10 version 21H1 any more
  • From a console Window, run either of these commands (the second waits zero seconds before rebooting, the first 30)
    • shutdown.exe /r /o
    • shutdown.exe /r /o /t 0

There is also a possibility to restore the F8 functionality, but you need installation media for it. [Wayback] 3 ways to boot into Safe Mode on Windows 10 version 21H1 explains how to.

Some “notes on NTFS boot issues” links for my archive

(Note that for some of the links, only the [Wayback] ones work: link-rot of the links I saved 6 years ago)

–jeroen

Read the rest of this entry »

Posted in Internet, link rot, Power User, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, WWW - the World Wide Web of information | Leave a Comment »

Quickly get into the “rename computer” setting on Windows 10

Posted by jpluimers on 2022/02/18

A while ago I needed to quickly rename a Windows 10 machine, but again they moved around the way to get into the right dialog (each new Windows 10 release more options seem to move around from the classic Control Panel or Computer Properties into hard to memorise places).

So I was glad to find out that either of these work from the command-line:

  • sysdm.cpl,1
  • SystemPropertiesComputerName

I already was aware of editing the user environment variables through "C:\Windows\System32\rundll32.exe" sysdm.cpl,EditEnvironmentVariables

Glad changing the computer name was so easy.

From [Wayback] Easy Ways to Open System Properties in Windows 10 | Password Recovery, I learned there were more equivalence commands for the rest of the “System Properties” tabs:

  1. Computer Name
    • sysdm.cpl,1
    • SystemPropertiesComputerName
  2. Hardware
    • sysdm.cpl,2
    • SystemPropertiesHardware
  3. Advanced
    • sysdm.cpl,3
    • SystemPropertiesAdvanced
  4. System Protection
    • sysdm.cpl,4
    • SystemPropertiesProtection
  5. Remote
    • sysdm.cpl,5
    • SystemPropertiesRemote

Searching for [Wayback] “EditEnvironmentVariables” “SystemPropertiesComputerName” – Google Search, I found a truckload more of these command-line tricks at [Wayback] 运行(WIN+R)中能使用的命令:ms-settings:,shell:,cpl,mmc… – Bob-wei – 博客园.

–jeroen

Posted in Power User, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1 | Leave a Comment »