You could write a query to automatically rename them, but a safer approach would be to generate the query for renaming, and then run that query manually. For example, if you run the following query, it generates a set of statements.
SELECT 'EXEC sp_rename ''' + name + ''' ''' + REPLACE(name,'$','') + '''' FROM sys.tables WHERE name LIKE '%$'
You can examine the results and see if that is exactly what you want to do. If it is, then copy that to a query window and run it. The advantage of doing it this way is that you know exactly what you are going to do BEFORE you do it.
The REPLACE function that I used in the example may not be exactly what you want to use if you have other '$' symbols in your table name that you want to retain.