I don't think there is a easy way. If you can change the file with the static variable you can do something like:
static int hiddenVar; // The static var you want to get at
// A new function you write
int * getHiddenVar() {
return &hiddenVar;
}
But of course if you can change the file, you would just drop the static keyword.
Also, I doubt this helps, but I've had to do something like this when writing a kernel module in FreeBSD. I used a trick where I called the kernel's linker functions to find the address of a static function. I doubt you can do this in a normal C program though.