While I don't know much about shellcoding in general, I did find this FAQ Illuminating fnord. Questions 6, 7 and 10 seem particularly relevant to your problems. After the FAQ portion, he includes a tutorial that has it's own version of the 'Hello' program, which seems to be written to avoid the NULL byte problem.
Schol-R-LEA 1,446 Commie Mutant Traitor Featured Poster
Schol-R-LEA 1,446 Commie Mutant Traitor Featured Poster
Schol-R-LEA 1,446 Commie Mutant Traitor Featured Poster
ddanbe commented: Good explanation. +14
silvercats commented: Exactly the answers I am looking for. +2
aVar++ commented: Worked great, thanks :) +2
Stuugie commented: He/she's going to find another forum to do all his/her work from him/her +2
Schol-R-LEA 1,446 Commie Mutant Traitor Featured Poster
Schol-R-LEA 1,446 Commie Mutant Traitor Featured Poster
Schol-R-LEA 1,446 Commie Mutant Traitor Featured Poster
Schol-R-LEA 1,446 Commie Mutant Traitor Featured Poster
Schol-R-LEA 1,446 Commie Mutant Traitor Featured Poster