Is Windows broken?

No, it’s chaos-monkeyed!

George Shuklin
OpsOps
2 min readJul 13, 2022

--

I’ve tried to cross-compile my application for Windows from Linux (using x86_64-pc-windows-gnu toolchain) and the first thing I got after sending a binary to a windows machine, is some odd Windows service called ‘Windows Defender’ which removed my binary from a filesystem of that machine.

I know Windows has a thing called ‘antivirus’ which, presumably, should stop running malware from random sources (like autorun.inf files on flash drives). But I never expected it to be a problem for a freshly build Rust binary with a modest amount of OpenGL code.

I used web service called ‘virusttotal’ (turned out, Windows has a lot of different ‘antiviruses’… Should people run all of them at once, or in parallel or are they alternatives? I dunno.) It shows that only ‘Microsoft Defender’ is insisting my binary is a malware.

(If you are curious, it’s https://github.com/amarao/fpscount utility)

I’m divided. Either I need to agreed that I have a malware on my Debian GNU/Linux machine which produces Trojan:Win32/Wacatac.B!ml malware inside win64 binary (mad skill, I’d say, given different architectures), or, if I trust Debian maintainers, I need to take sides and assume that that Windows thing is just broken.

I googled it a bit, and found few posts about the same ‘Wacatac.B!ml’ complain from many people that freshly compiled binaries of small utilities were classified as ‘malware’ by this ‘Windows Defender’ thingy and deleted at instance.

But, if I assume that my code has no malware inside, what should I do to make it work? If some non-deterministic service is just running around and breaking things…

Oh, I know. It’s called “Chaos Monkey” and it was pioneered by Netflix. But why should we have chaos monkey running amok on desktops? I’m at loss. How do you use this Windows thing? Is it a usable operating system?

UPD: Just to give them a chance I’ve made a submission of false positive. Let’s see what would happen (link is auth protected, unfortunately).

UPD2: It may be a coincidence, but I start thinking it’s plainly suspicion, because the same program build with x86_64-pc-windows-msvc target is not considered a ‘malware’ by the same ‘Windows Defender’. Basically, if you build a binary with x86_64-pc-windows-gnu toolchain (which is free) windows marks it as ‘malware’. If you build the same program using proprietary x86_64-pc-windows-msvc toolchain, it’s OK, OK.

Should I send a complain to European anti-monopoly commission?

--

--

George Shuklin
OpsOps

I work at Servers.com, most of my stories are about Ansible, Ceph, Python, Openstack and Linux. My hobby is Rust.