A few things come to mind...

Wherever you send the file to will need to be an open site.  If someone realizes this (which *will* happen at some point) then they'd have open access as well for DoS'ing the server by filling up the file system.

I don't know how you'd send the file but if your code would send it by reading the file you could just send every 3rd pixel on every 3rd raster line.  That should be enough to see if there's any funny business and would cut the transfer down by 66%.  Of course, the header for the BMP file would need to be rewritten in the process or could be done later in the file that was sent up.

If you're reading the file to send you might be able to just average the color planes to get a grayscale image.  Again reducing the data by 66%.

Any other compression you do would probably be noticeable as lag.  

Oh wait... if we KNOW what the two hack programs look like on screen, what about sending ONLY portions of the screen that would show something useful?  Again, this is only if you're sending the file by reading it in your code.