Published ASUS Armoury Crate article

This commit is contained in:
Michael Fabian 'Xaymar' Dirks
2023-02-11 19:07:12 +01:00
parent 4421d519b7
commit 785c3525af
@@ -0,0 +1,72 @@
---
title: "ASUS Armoury Crate - Self-installing Bloat/Malware"
category: Blog
tags: []
---
{%capture content%}Back in December 2022, I bought myself a Laptop in the hopes that I would be able to take it anywhere and keep working or playing. The idea mostly worked, with the massive downside that I forgot entirely about which vendor made the Laptop: ASUS. ASUS, like MSI, is one of those that will silently push Malware, Spyware and Bloatware as a required Windows update, often hiding it as a new driver.
{%endcapture%}{%include blocks/paragraph.liquid content=content%}
{%capture content%}Unfortunately for me, Microsoft Windows is a necessity for Windows development - cross-compiling may work, but the generated binaries are horribly wasteful and slow. It's just better to use Microsoft Visual Studio instead, and get proper decent binaries out. So, I needed a solution for the ASUS problem, and I think I found one.
{%endcapture%}{%include blocks/paragraph.liquid content=content%}
{%capture content%}How to (temporarily) remove Armoury Crate{%endcapture%}{%include blocks/heading.liquid level=1 content=content%}
{%capture content%}1. Disable the feature in BIOS/UEFI{%endcapture%}{%include blocks/heading.liquid level=2 content=content%}
{%capture content%}This is the easiest step, as you just have to get into UEFI and turn the switch for it to Disabled or Off. This should remove the device for which Windows will attempt to fetch drivers for, but it may still be present. Just reboot into Windows once you've set the setting.
{%endcapture%}{%include blocks/paragraph.liquid content=content%}
{%capture content%}2. Remove the Services{%endcapture%}{%include blocks/heading.liquid level=2 content=content%}
{%capture content%}With the "feature" disabled, we can now enjoy some time before Windows will reinstall everything. So lets start by disabling, stopping and deleteing the Services that it created - and the best way to do that is a good old {%capture code%}cmd{%endcapture%}{%include inline/code.liquid content=code%} Terminal running as Administrator! We're not using Powershell here, because the {%capture code%}sc{%endcapture%}{%include inline/code.liquid content=code%} command is broken in Powershell. Once you have it open, the following commands will make quick work of the Services:
{%endcapture%}{%include blocks/paragraph.liquid content=content%}
{%capture content%}sc config [SERVICE] start=disabled
sc stop [SERVICE]
sc delete [SERVICE]
{%endcapture%}{%include blocks/code.liquid content=content%}
{%capture content%}Of course, you replace {%capture code%}[SERVICE]{%endcapture%}{%include inline/code.liquid content=code%} with the name of the service, below is a list of the ones I know:
{%endcapture%}{%include blocks/paragraph.liquid content=content%}
{%capture content%}ASUSSystemDiagnosis
ASUSSystemAnalysis
ASUSSwitch
ASUSSoftwareManager
ASUSOptimization
ASUSLinkNear
ASUSLinkRemote
ASUSAppService
{%endcapture%}{%include blocks/code.liquid content=content%}
{%capture content%}The result of this replacement would be the following command series for ASUSSystemDiagnosis:
{%endcapture%}{%include blocks/paragraph.liquid content=content%}
{%capture content%}sc config ASUSSystemDiagnosis start=disabled
sc stop ASUSSystemDiagnosis
sc delete ASUSSystemDiagnosis
{%endcapture%}{%include blocks/code.liquid content=content%}
{%capture content%}3. Remove the "Driver"{%endcapture%}{%include blocks/heading.liquid level=2 content=content%}
{%capture content%}Now that nothing is using the driver itself anymore, we can begin by figuring out where it is, and what it was registered as. This time we'll use a {%capture code%}Powershell{%endcapture%}{%include inline/code.liquid content=code%} Terminal running as Administrator, and a single command will do all the work for us:
{%endcapture%}{%include blocks/paragraph.liquid content=content%}
{%capture content%}pnputil /enum-drivers | `
Select-String -Pattern "asussci" -Context 2, 5 | `
ForEach-Object {@{ `
"Inf" = ($_.Context.PreContext[1] -split ':')[1].trim(); `
"ClassName" = ($_.Context.PostContext[1] -split ':')[1].trim(); `
}} | ForEach-Object { `
pnputil /delete-driver $_.Inf /uninstall /force /reboot `
}
{%endcapture%}{%include blocks/code.liquid content=content%}
{%capture content%}Note that this command can restart your system in the event that it is necessary to do so in order to remove all driver files. But once it is done, the driver is no more!
{%endcapture%}{%include blocks/paragraph.liquid content=content%}
{%capture content%}4. Enjoy the regained performance!{%endcapture%}{%include blocks/heading.liquid level=2 content=content%}
{%capture content%}ASUS's Driver and Services are absolutely horrible for input latency, as well as system performance. They've caused me quite a few audio stutters, and combined with other shitty drivers and services made any proper audio playback near impossible. This behavior from Microsoft and Laptop manufacturers needs to stop, but it likely won't until a government steps in - so here's me hoping the European Union will do something to stop this. It's bad enough on "smart"phones, we don't need it on Laptops and Desktops too...
{%endcapture%}{%include blocks/paragraph.liquid content=content%}