Answer:
The exact translation would be:
Tú has estado cocinando por dos horas.
Step-by-step explanation:
But, this is not among the options. So, a interpretation for this exact translation would be: "Tú cocinas desde hace dos horas".
Because, the given statement "You have been cooking for two hours", refers to an action that's not concluded yet, because it's using a present perfect continuous.
On the other hand, other options are not correct, because the adverbs and prepositions are not used correctly, it doesn't make sense.
Therefore, the correct answer is "Tú cocinas desde hace dos horas".
However, it's important to specify that even that option can be improved to "Tú has estado cocinando por dos horas".