you should be able to use your web server account's control panel (cpanel or plesk or whatever the hosting server has) and the File Manager or whatever tool they provide and reset the permissions for the affected files, right?
Or, the hosting company's tech should, if you can't.
You should disable anonymous FTP, make your password really hard to guess, don't use the default "admin" name when setting up a WordPress blog (make that hard to guess, too), and change the permissions of some key files from 0755 until you need to edit them again... DreamHost (DH) does use Fantastico, so you can pick something other than "admin" as the administrator username. Pick something hard to guess, including some caps and characters.
And of course, always keep WordPress up-to-date, particularly if security fixes are included in the release.
Is there any reason you cannot use DH's cpanel to access phpMyAdmin and export out your data tables? That IS your content and frankly, you don't have to rely on WordPress to backup your data. In fact, I never do.
DH should be able to delete that wp-blog-header file. Or, you can use your cpanel's File Manager tool to locate it and do it, after resetting its permissions to 0755. (using the File Manager, navigate to the web root or where you installed your blog, look for wp-blog-header.php. Click it. There should be some means to see the current permissions or to "change permissions" when the file is selected.
Google file permissions to understand what is needed.
Then upload a fresh wp-blog-header.php file in the same location.
You should be able to get into your blog after that. I've never had this hack happen to me, but if it's just a single file and being able to overwrite it, you have to delete that file and replace it with a fresh copy... then make sure that no users except yourself are administrators (once you can access the wp-admin)...
NOTE: you have to export your data tables using phpMyAdmin to get your current data into the fresh install. This is very easy.
1) find your phpMyAdmin tool in the cpanel at DreamHost.
2) Navigate to your database.
3) Click the Export tab.
4) Select All tables listed in the menu (they are probably pre-selected, but you should see a Select All link).
5) Scroll down to the Save as File and check that option. Export with "none" for compression. This produces a .sql file.
6) Save the file to a location where you can find it.
7) In the text editor of your choice (I use Dreamweaver CS3 and modify its preferences to add .sql to the File Types/Editors it understands how to open) try a Find on sattan.org to see if that shows up anywhere in the actual data fields... I've never experienced this hack, so I don't know if they put something into the data.
You also need to save your theme files and plugins unless you plan a whole new theme. Theme files are stored in wp-content/themes/
To get the data into your fresh install:
1) install in the same location as the previous install. (technically, you don't have to but you'd need to do more Find/Replace in the data before using it if you don't)
2) Using phpMyAdmin, navigate to the new database.
3) click the name of the database.
4) in the first screen, find the link that says "check all" below the list of tables.
5) In the menu that says "with selected", choose Drop.
6) Click the Go button and OK the next verification.
7) Click the Import tab.
8) Browse to find the .sql file from your original database export.
9) Click the Go button.
All should work well. However, in 2.5yrs of blogging, your database could be quite huge and there could be issues importing the data. Additionally (you didn't say what happened after the updating to a newer version was done) there could be strange problems with html entities or characters, which happens if you wait a really long time to upgrade your install of WordPress... and DH isn't the best host for WP, imo. I used them for a while, but they are more expensive than necessary and you have to pay extra to get phone support.
midphase.com, anhosting.com and many others work as well or better (same cpanels, fantastico, etc) and 24/7/365 support by email or phone.
If you change hosts, you can move your blog using the exported data tables, but you will have to do more Find and Replace on the sql file depending upon where you install the WordPress application.