You don't need a program to do it though. You could do it in code with the UV coordinates. I mean you couldn't do it for a complex mesh, but you could for a cube.
You probably already know this, but just in case. Don't reuse any vertices in other faces. Each of the six faces ( each consisting of two triangles ) should use four new vertices. Otherwise you won't be able to get nice crisp edges between the faces, you'll get yucky soft smoothing trying to make the edges go away.
You probably already know this, but just in case. Don't reuse any vertices in other faces. Each of the six faces ( each consisting of two triangles ) should use four new vertices. Otherwise you won't be able to get nice crisp edges between the faces, you'll get yucky soft smoothing trying to make the edges go away.