maat::loader::CmdlineArg class

A class representing a command line argument supplied when executing a binary.

Command line arguments can be of the 3 following types:

  • Concrete: a regular argument with a fixed concrete value
  • Concolic: an argument with a concrete value, whose every single byte is written in memory as a concolic variable
  • Symbolic: an argument without a concrete value, whose every single byte is written in memory as a symbolic variable

❱   Constructors, destructors, conversion operators

CmdlineArg(const std::string& value)
Create a concrete command-line argument.

CmdlineArg(const std::vector<Value>& arg)
Create a command-line argument from a buffer.

❱   Public functions

auto string() const -> const std::string&
Return the concrete argument string.

auto buffer() const -> const std::vector<Value>&
Retun the abstract argument buffer.

auto len() const -> size_t
Return the argument length in bytes.

auto is_abstract() const -> bool
Return true if the argument is an abstract buffer.

auto is_concrete() const -> bool
Return true if the argument is a concrete string.

❱   Function documentation

maat::loader::CmdlineArg::CmdlineArg(const std::vector<Value>& arg)

Create a command-line argument from a buffer.

Parameters
arg Argument as a buffer of values. Values in the buffer must have a size of 1 byte.