I think post-game analysis gives you the best chance of identifying if a player was cheating. This can be done using what is called as the T3/T4 analysis. 

This basically measures the frequency at which a player picks one of the top 3 or top 4 moves that are suggested by an engine. This largely eliminates the need to identify the target engine in use (as they will generally agree on the top 4/5 moves even if the order of preference is different).

There are software available that will run a set of games of the user against the top n moves of the engine.