Source code for shellcodes.thumb.write_to_stack
# read from file descriptor and write to stack
[docs]def align4(n):
m = n / 4
return 4 * (m+1)
[docs]def generate(in_fd, size):
"""Writes data to stack in thumb mode
Args:
in_fd (int/str/reg) = file descriptor
size (int/str/reg) = size to write
"""
if isinstance(in_fd, int) == True:
xin_fd = "#%s" % (in_fd)
else:
xin_fd = in_fd
if isinstance(size, int) == True:
xsize = "#%s" % align4(size)
else:
xsize = size
sc = """
sub sp, %s
mov r0, %s
mov r2, %s
mov r1, sp
mov r7, #3
svc 1
""" % (xsize, xin_fd, xsize)
return sc