35 send(std::vector<u8>
const& str);
44 send(std::string
const& str);
53 Result<std::vector<u8>>
79 PWNAPI Result<std::vector<u8>>
88 PWNAPI Result<std::vector<u8>>
95 PWNAPI Result<std::vector<u8>>
107 sendafter(_In_ std::string
const& pattern, _In_ std::string
const& data);
117 sendafter(_In_ std::vector<u8>
const& pattern, _In_ std::vector<u8>
const& data);
128 sendlineafter(_In_ std::string
const& pattern, _In_ std::string
const& data);
138 sendlineafter(_In_ std::vector<u8>
const& pattern, _In_ std::vector<u8>
const& data);
159 virtual Result<usize>
160 send_internal(_In_ std::vector<u8>
const& data) = 0;
162 virtual Result<std::vector<u8>>
163 recv_internal(_In_ usize size) = 0;
165 virtual Result<usize>
168 std::vector<u8> m_receive_buffer;
169 std::vector<u8> m_send_buffer;
Generic interface that represent a tube. Tube definition (process, remote) are OS-specific.
Definition: Tube.hpp:11
PWNAPI Result< usize > sendafter(_In_ std::string const &pattern, _In_ std::string const &data)
function combining in one call recvuntil() + send()
PWNAPI Result< usize > peek()
Peek into the tube to see if any data is available.
PWNAPI Result< usize > send(std::vector< u8 > const &str)
Move data given as argument to the send buffer, tries to send.
PWNAPI Result< usize > send(std::string const &str)
Move data given as argument to the send buffer, tries to send.
PWNAPI Result< usize > sendafter(_In_ std::vector< u8 > const &pattern, _In_ std::vector< u8 > const &data)
PWNAPI void interactive()
Basic REPL.
static constexpr std::string_view INTERACTIVE_PROMPT
Default prompt.
Definition: Tube.hpp:26
Result< usize > sendline(_In_ std::vector< u8 > const &data)
Send the data (as byte vector) followed by a line separator.
static constexpr usize PIPE_DEFAULT_SIZE
Default read size from the pipe.
Definition: Tube.hpp:16
Result< std::vector< u8 > > recv(_In_ usize size=Tube::PIPE_DEFAULT_SIZE)
Read bytes from the tube, moves the read bytes to the receive buffer.
PWNAPI Result< usize > sendlineafter(_In_ std::vector< u8 > const &pattern, _In_ std::vector< u8 > const &data)
PWNAPI Result< std::vector< u8 > > recvuntil(_In_ std::string const &pattern)
PWNAPI Result< std::vector< u8 > > recvuntil(_In_ std::vector< u8 > const &pattern)
Read from tube until receiving the given pattern, and return that data.
static constexpr u8 LINE_SEPARATOR
Default line separator.
Definition: Tube.hpp:21
PWNAPI Result< usize > sendline(_In_ std::string const &str)
Send the data (as str) followed by a line separator.
PWNAPI Result< usize > sendlineafter(_In_ std::string const &pattern, _In_ std::string const &data)
Convenience function combining in one call recvuntil() + sendline()
PWNAPI Result< std::vector< u8 > > recvline()
Read from tube until receiving a line separator and return it.