Recently my remote key fob for my 2005 Chevy Silverado quit working. At first I thought it might be the battery but it wasn't, so went to a GM dealership here in Canada. They wanted $90 for a new fob and $30 for re-programming!!!
After hunting on the internet I found this site.
https://www.keyless-remotes.com
They offer them for all vehicles. A new one for my Chev was $42 with free shipping and included how to re program which was really easy. Quite a savings! It was exactly the same as my old one. It was also a genuine GM fob.