You probably all know what a packer is, there are already many, ranging from simple as UPX or FSG for more complex as Themida, Armadillo and many others.
The purpose of a packer is primarily to compress an executable (which are UPX and FSG) but also to protect it from any person ill-intentioned (or not) wishing your cracker program.
When the question of why make my own packer when there are many other and probably more advanced than mine, well I would say simply that this project is very interesting because it requires a good knowledge of mechanisms established by the system to perform a task. And so I learned a great deal in the making. My goal then is to make you share.