I have been stuck on this problem for quite some time.. I think it is best described with a picture:

Imagine that this picture is taken of a table. I am able to find the four red dots and their coordinates on the pictures. Same goes for the green dot.
Now, I want to be able to find the location of the green dot in 2D space on the table. Assuming the following mappings:
(171,22) -> (0,0)
(488,155) -> (1,0)
(24,126) -> (0,1)
(361, 346) -> (1,1)
How do I determine what coordinate (167,128) maps to on the plane created by the table?
I seem to have read that I need to find a projection matrix (which I have a basic understanding of what is), but how?
Any hints or suggestions you can give me is very welcome, example calculations even more so.
Also, please point out if I am reinventing the wheel here. I am not aware of any libraries that do this already. (for .NET)