diff --git a/user/config/bash/aliases b/user/config/bash/aliases index 9173679..23b8956 100644 --- a/user/config/bash/aliases +++ b/user/config/bash/aliases @@ -80,6 +80,7 @@ alias clipboard-image='xclip -o -sel clip | nsxiv-pipe' alias path='sed "s/:/\n/g" <<< $PATH' alias utc='date -u +"%Y-%m-%d %H:%M:%S UTC"' alias odd='objdump -d' +alias pwninit='pwninit --template-path ~/.config/pwninit/template.py --template-bin-name e' alias fonts='fc-list | awk -F: "{ print \$2 }" | sort | uniq | fzf' alias hz='xrandr --output DisplayPort-1 --mode 1920x1080 --rate' alias ns='nix-shell' diff --git a/user/config/pwninit/template.py b/user/config/pwninit/template.py new file mode 100644 index 0000000..c3e1a10 --- /dev/null +++ b/user/config/pwninit/template.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 +from pwn import * +import argparse +import sys + +{bindings} +context.binary = {bin_name} +context.terminal = ['tmux', 'splitw', '-h'] +gdbscript = '' + +def main(args): + p = conn(args) + + p.interactive() + +def conn(args): + if args.remote: + p = remote(*args.remote) + else: + p = process({proc_args}) + if args.gdb: + gdb.attach(p, gdbscript=gdbscript) + return p + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + g = parser.add_mutually_exclusive_group() + g.add_argument('-r', '--remote', nargs=2, metavar=('HOST', 'PORT')) + g.add_argument('-g', '--gdb', action='store_true') + argv = ['-r' if x == 'nc' else x for x in sys.argv[1:]] + args = parser.parse_args(argv) + main(args) diff --git a/user/xdg.nix b/user/xdg.nix index c65b37c..98debf3 100644 --- a/user/xdg.nix +++ b/user/xdg.nix @@ -16,6 +16,7 @@ in { xdg.configFile.git.source = config/git; xdg.configFile.lsd.source = config/lsd; xdg.configFile.picom.source = config/picom; + xdg.configFile.pwninit.source = config/pwninit; xdg.configFile.python.source = config/python; xdg.configFile.qt5ct.source = config/qt5ct; xdg.configFile.readline.source = config/readline;