Source code for shellcodes.arm64.ls
# ls like *NIX command
import open_file
import getdents
import read_from_stack
[docs]def generate(filepath, out_fd):
"""
`ls` a directory list like UNIX Command in thumb mode
arguments:
filepath (str) : target directory name
out_fd (int/str): out file descriptor
backup:
x6 reg indicates to file descriptor
"""
sc = ""
sc += open_file.generate(filepath)
sc += "sub x4, x4, x4\n"
sc += "loop_1:\n"
sc += getdents.generate(in_fd='x6') + '\n'
sc += """
cmp x0, x4
ble after_1
"""
sc += read_from_stack.generate(out_fd, size='x0') + '\n'
sc += """
cmp x0, x4
bgt loop_1
after_1:
"""
return sc
if __name__ == '__main__':
print generate('./secret', 4)