As @@TecHnOBoY has said, we are talking about DNS records not browsing history they are totally different.
How is a program supposed to look to see if you have a hack related program installed if they cannot look at all the programs installed? Take the following code for example, this will loop through all of the programs that you would see in the control panel. If you are looking for a 'hack' you may do similar.
string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
foreach(string subkey_name in key.GetSubKeyNames())
{
using(RegistryKey subkey = key.OpenSubKey(subkey_name))
{
Console.WriteLine(subkey.GetValue("DisplayName"));
//This is where you would be checking for a hack program. But to get here you have to retrieve all of the installed programs.
}
}
}
Ok for the more code savvy you could say that you could have an object array of all the known hack programs and then do an individual call into the registry for each, but that would just stall the host computer.
This concept is the same for most things that anti-cheat programs do, when they go into your RAM they are most likely searching all of it for set patterns - they will focus on memory areas that are linked to graphics, DirectX and the games more than other parts but that doesn't mean that they won't at some point read it all.
So really there is no way to do it like you say without it making the anti-cheat program useless. If an anti-cheat program was set to look in specific areas and forced to use bad programming techniques to do it, well some may be happy that their privacy is intact but there would be more hackers due to its inefficiency and the anti-cheat program would stall more often.
My two pennies.