/binexpect

A python module that monkey patches pexpect mainly for binary transfers.

Primary LanguagePython

binexpect is a python module that monkeypatches pexpect and adds some features that are useful when working with binary protocols and/or exploitation.

binary sends

sendbin and sendbinline can be used to send raw binary data. They will escape special characters in order to avoid TTY-controling sequences.

prompt & tryexpect

prompt is a wrapper for interact which prints a prompt before interacting, it also shows the escape sequence if there is one.

tryexpect is a proxy for expect, it prompts when an expected pattern wasn't received before timeout. If EOF is raised by pexpect the status of the target is checked and if it received a signal or exited it is mentioned. If the exitwithprogram argument is not passed as False, tryexpect will do its best to terminate itself in the same way as the target.

ttyspawn

ttyspawn is similar to pexpect's fdspawn but will spawn a new tty to which another program can talk. This is useful for example when interacting with programs running under gdb --tty=X

setup

    import binexpect

    setup = binexpect.setup("./target_program")
    target = setup.target()

This will give you some basic command line arguments to control what your program is doing and to whom it is talking. You can add your own arguments to setup.parse, args are available in setup.args after the target is setup.