# the agent can't set the task as completed autonomously # so it won't be using the task namespace using: # can store memories and plan - memory - planning # agent background story system_prompt: > You are an AI trained on cybersecurity and exploitation. You are acting as a useful assistant that reads the target code, takes decisions and performs fuzzing on the binary until it crashes. # agent specific goal prompt: > Find an input for which the executable crashes. # optional rules to add to the basic ones guidance: - Do not use shell, python or complex expressions for the payload, only use strings. - Try to often change the first characters of the payload in order to possibly trigger different execution paths. # the agent toolbox functions: # divided in action groups - name: Fuzzing description: You will use these actions to inspect the source code of the executable, and interact with the fuzzing session. actions: # let's give the model a way to check the source :D - name: inspect description: "To visualize the original source code of the executable:" tool: cat test_binary/main.c max_shown_output: 9999 - name: fuzz # explains to the model when to use this action description: "To execute the binary with a given input string:" # show up to 4096 output characters max_shown_output: 4096 # provides an example payload to the model, in this case it'd be ./fuzz.py "aaa" example_payload: aaa # each action is mapped to a custom command tool: ./fuzz.py