Source code for covertutils.payloads.generic.example

"""
This code isn't really useful and it is meant to be a guide for making custom `stages` using the ``covertutils`` API
"""
[docs]def init(storage) : ''' :param dict storage: The storage object is the only persistent object between runs of both `init()` and `work()`. It is treated as a "Local Storage" for the `stage`. :return: This function must **always** return True if the initialization is succesfull. If `False` values are returned the `stage` doesn't start and `work()` is never called. ''' print( "Initializing stage!" ) """Saving an arbitrary value to communicate with ``work()`` function""" storage['counter'] = 0 return True
[docs]def work(storage, message) : ''' :param dict storage: The storage object is the only persistent object between runs of both `init()` and `work()`. It is treated as a "Local Storage" for the `stage`. :param str message: The data sent from the `Handler` to that `stage`. :rtype: str :return: The response to message that arrived. This exact response will reach the `Handler` in the other side. ''' print( "Running for handler's message '%s'" % message ) """Keep state of how many messages have arrived. The `storage` `dict` gets preserved through function calls""" storage['counter'] += 1 print( "Returning the message in reverse" ) return "{count} - {response}".format(count = storage['counter'], response = message[::-1]) # Reversing the output
""" Defining a specific SubShell for the `stage` """ from covertutils.shells.subshells import ExampleSubShell as shell