An older version of my game has been stolen by some of the same culprits you list. But then I discovered sitelocking and it's been fine since then.
To my understanding, you just have to check what domain your game is hosted on. I don't know what framework you're using, but in Game Maker Studio 2, what I do is first grab the domain using
domain = url_get_domain(); if ( domain == "v6p9d9t4.ssl.hwcdn.net" || domain == "uploads.ungrounded.net" || domain == "b-cdn.gamejolt.net" ) { legit = true; }
Then I ask the game to run if "legit == true", otherwise, display a UI that shows my game's logo, URL and an explanation that you can play it on itch.io. "v6p9d9t4.ssl.hwcdn.net" is the domain to check for for itch.io.
Hope that helps.