Well, it could be a couple of things. You don't mention it, but I'm assuming that your connection to the Net is good for everything else. Is it? If so, then you've a DNS entry problem. If not, then yeah. Probably a virus/malware.
Here's what DNS does, in a nutshell. There are servers on the Internet that keep track of all websites. Since computers use the IP numbers to access websites, for example: 123.112.100.1, and humans like words, not numbers, they need to cross reference the name (www.yahoo.com) to the actual IP numbers. Somehow, there has to be a mechanism to translate the numbers to names and vice-versa, and DNS does this. There's many, many DNS servers out there, and they all talk to each other. This allows computers to route the destination addresses to your computer, as it searches on the Net for what you typed into your browser.
It gets somewhat confusing if I explain it more, but that should give you a basic understanding.
To check to see what your DNS entries are, go to a command prompt. I don't know what you're using, WinXP or Vista, but you need to get the black dos entry box. From XP, you can go to Start->Run->type in 'cmd' in the Open: line and then hit return. From Vista, I don't know what you'd do, perhaps someone else does, or maybe you can go to help to see how to get the Command Prompt window.
From there, type this:
ping www.yahoo.com
You'll get some info, but what you want to see is:
Reply from 69.147.76.15: bytes....blah blah blah. The numbers are the important thing, the other stuff is not. Well, the time could be. If it reports more than 200ms, that could be an issue. Let me know if that's the case.
But, if it lists anything else, or doesn't find it, your DNS entries are bogus/non-existent. Tell me what you see for the IP addresses, regardless. If they're incorrect, this could be on your computer, or it could be with your internet provider. You can try this from the same command prompt:
ipconfig/all
You'll get some info there, what you're looking for are the DNS Servers, almost to the end. Tell me what the IP numbers for the servers are.
It could also be a incorrectly cached entry, so from the same command prompt, type this:
ipconfig/flushdns
Then try to access yahoo again.
If it still doesn't work, it could be a file on your machine or it could be your service provider. Worst case, you may have to contact your internet provider and open a case. Again, I'm assuming that you don't have a virus, and that all other internet access is good. If it gets a bit confusing, I'll give you my number and we can talk.
fret