Du hast am Einstiegspunkt des Programms einen Jump zu deinem Shellcode eingefügt, dieser Jump ist fünf Byte lang. Die Instruktionen welche dadruch überschrieben werden müssen am Ende des Shellcodes wieder eingefügt werden und dann ein Jump zurück hinter den Jump am Einstiegspunkt damit das Programm weiter laufen kann.
Ob das Call EBP da ist weiß ich nicht, poste mal den Shellcode.