I don’t know anything, but I do have enough generic knowledge that I can speculate a bit.
To understand what is and is not possible, let’s start with how the game is played. A game server keeps track of the game. A program on your device (“client”) connects to it, and so does your opponent’s client.
The server sends important game data to the client. This data is received by the client, and logged in a file (hs deck tracker uses this file to track what is going on). The client receives the data and provides the animations. And on your turn, it sends data about your actions to the server, then waits for the response to know what the effect is.
Reading the data sent between client and server is very easy (even if it were not stored in a file, someone could just use a simple network sniffer). So I assume that Blizzard designed it so that reading this does not give you an advantage. I have never actually looked at the content of this file, but I assume that for instance on a card draw, the data is “opponent draws a card” … “opponent plays left most card, which is Fireball”, and not “opponent draws Acolyte of Pain” … “opponent plays left most card”. So even reading and decoding this info doesn’t help to know what they have in hand, the actual card is just “a card” until it is played.
Likewise, for secrets I expect the data sent to the client to merely be “opponent plays a secret”, and nothing in the data received by the client can deduce which secret it is, until it triggers (at which point the server would send data about the type of secret exposed, and the effect it has on the board … e.g. “reveal secret #1 as Wandering Monster” … “summon Bearshark” … “Elven archer hits Bearshark” … “Bearshark now at 2/3 health; elven archer at -2 health” … “Remove Elven archer”)
Now this system is not 100% perfect. I think a little over a year ago, there were bug reports on hsdecktracker that it sometimes (under very specific circumstances) revealed information the player could not know. I don’t recall the details. But since decktracker gets its info from the data sent from server to client, this was apparently a case where data was sent that was not displayed immediately.
This was fixed later. Perhaps by Blizzard no longer sending that data. Or perhaps by decktracker no longer revealing that data. In the latter case, a hacker can still read the data and get it for him- or herself.
So what does this mean for a hacker? Well, several options.
#1 - easiest: intercept and decode the data sent between client and server and use it to get an information advantage. Possible, but as explained above probably not very effective (unless all my speculation is wrong and the data sent to the client actually includes many details the player doesn’t see).
#2 - relatively easy for a good hacker: hack the client program. This can enable them to show the extra info (if any) on the same screen instead of in a separate window. They could also use it to send fake data to the server (like playing a card you don’t have in hand), but I would be really surprised if that would work. Most likely, the Blizzard servers will tell the client they are confused and send a fresh set of game data so it can reset; or the developers may even have added code to log this as a potential hacking attempt.
#3 - very hard: actually gain access to the game server and change the game state or get extra information from there. I am sure that nothing is 100% unhackable. Just as every home, no matter how secure, can be broken into if a thief is dedicated enough. And yes, once this level of access has been found, you can do whatever you want and modify the game however you please. But getting there will be extremely hard, and the reward is just some free wins in a children’s card game. People able to pull off this type of hacking are much more likely to focus on more rewarding targets … either to benefit themselves, or to warn the owners of their vulnerability (in the case of ethical hackers).
You mention that there are hackers in other games as well. And that is true. And yes, there probably are hackers in HS as well. But there is one important difference.
Look at games such as League of Legends, Fortnite, Starcraft, Heroes of the Storm, etc. All games with a similar design (game server, and clients on the gamers’ computer). But unlike HS, these games are reaction-speed based. A computer can respond much faster than a human. If you hack the League of Legends client, you can make your summoner flash to safety a millisecond after a danger comes out of fog of war. That gives you an unfair advantage. So in that type of game, hacking the client already gives a rather big advantage.
In HS, response time hardly ever matters. Yes, there are a few edge cases. Playing a lot of cards when Nozdormu is in play. Playing cards that are generated during the turn before the generation animation plays. If you can hack a HS client to skip the animations and show the end result immediately, you’d have an advantage in those cases. But they are rare, and the effort to do this would be huge. Plus, you’d have to repeat it after every update.
Worth it?
I’m leaning towards no.
So bottom line: Yes, hacking HS is possible. And if something is possible, it’s safe to assume that it happens.
But hacking the client side has very limited benefits. And hacking the server side is so hard that it’s unlikely to be done on a large scale for a target that is as unimportant as a card game.