And how would that be done? The server can't just "check" files remotely on someone else's machine, the machine itself has to send information to the server. In other words, the "send files and code in memory" program has to run on the client... and that program can also be hacked to send the right data, while you have the wrong code on the computer. That's been done in the past in other programs.1- the server can crosscheck files and code in memory in a client when he tries to start the game, or when he docks at a station. That wouldn't put too much pressure on the servers.
This method is that one I believe most in, because the cheater can't change your computers check program and the data the cheater sends must be the actual actions and activity at that moment, but there are some issues with this as well. Still, it's the only one I think can't be easily hacked.2- other players in the same instance could use their own client check ship's data of another. The premise is simple here: get the various attributes of the ship, as well as a list of modules and modifications, and do the math. If the ship has damage, shields or whatever different from what it should, then it's a cheater.
This method can be run passively during combat, or before the instance starts, when the connection is being established between peers.
Note: this method cannot detect cheats like infinite distributor energy, infinite shields, or perma-boost,unless the peers are constantly doing the math of others to cross-check each and every action.
Another method I mentioned before is to constantly change the location of data and procedures in the game. Each week a patch, moving the pertinent code the hackers need to change. That way it'll eventually get too much work to constantly keep up making the "trainers" and cheaters will constantly have to wait for the next hack version. Make them constantly run behind.