I am a little bit confused about the terms "hash function" and "pseudo-random function". As far as I know, I can use a cryptographic strong hash function as a PRF. The hash function has a IV and is completely public - everybody can look at the construction and at the details. A good hash function maps the input in a pseudorandom way to its output (deterministic).
So a pseudorandom function is quite similar. Here you do not take a fix hash function, rather than you take a function from a set of functions. That model is implied by using a keyed function. So there are often keyed hash functions used for example the HMAC is taken as a PRF.
So in a limited view, is it right to say that an attacker does not know my "internal conditions" of my PRF? (I mean my current Setting: which key I use and which hash function, or if I use HMAC, he does not know my key and my constants and my hash function.)