An
MD5 hash is a string given by a (although fairly broken)
hash function, given some input bitstring. Unfortunately, since hash functions are not one-to-one, it is quite difficult to reconstruct the source data (ISO) from just the hash, but with the magic of mathematics,
we can, theoretically, convert an MD5 hash to a valid, playable ISO, via the axiom of choice! Allow me to explain.
Let
H be our MD5 hash that we want to convert to a playable ISO, and
M a Turing machine that accepts the set of bitstrings
B that consists of playable ISOs for some fixed system
S. We can simply assert the existence of such a machine by the axiom of choice (AC), but we can do even better: we can construct such a machine simply by looking at the code of any emulator for
S!
Let
MD5 be the MD5 hash function that maps some bitstring
b to a hash
h
Then, let
B (bold and italics are different variables!) be the set of all bitstrings. We simply need to refine this set such that for all bitstrings
b in
B,
MD5(
b) =
H. Lets call such a set
H.
We're basically done at this point. All you have to do is find a bitstring in
H that
M accepts, and you have your ISO!