If your password space is just $2^{64}$ then the attacker only needs to search for the $2^{64}$ distinct passwords. It is simple as this function;
findPassoword( salt,targetHash)
for i in (1,2^64)
if SHA-256(i||salt) = targetHash
return i
This is still a pre-image search with limited input space. The input space is really important in the pre-image attack. The generic cost for SHA-256 is $2^{256}$ however when we specify the input space then is the minimum of the generic cost and the input space.
For password hashing, let's forget the cryptographic hash functions, we have special password hashing algorithms to achieve that like PBKDF2, Scrypt, Argon2, and Balloon hashing.