From c85cae0d74c2c32b23f5e1422f230bebd61f1b1e Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Sat, 21 Mar 2015 03:51:23 -0400 Subject: Add assemble dialog and use nasm for x86/x86_64 --- tempfile.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 tempfile.cpp (limited to 'tempfile.cpp') diff --git a/tempfile.cpp b/tempfile.cpp new file mode 100644 index 00000000..33256c76 --- /dev/null +++ b/tempfile.cpp @@ -0,0 +1,55 @@ +#include "binaryninjaapi.h" + +using namespace BinaryNinja; +using namespace std; + + +TemporaryFile::TemporaryFile() +{ + m_file = BNCreateTemporaryFile(); +} + + +TemporaryFile::TemporaryFile(const DataBuffer& contents) +{ + m_file = BNCreateTemporaryFileWithContents(contents.GetBufferObject()); +} + + +TemporaryFile::TemporaryFile(const string& contents) +{ + DataBuffer buf(contents.c_str(), contents.size()); + m_file = BNCreateTemporaryFileWithContents(buf.GetBufferObject()); +} + + +TemporaryFile::TemporaryFile(BNTemporaryFile* file): m_file(file) +{ +} + + +TemporaryFile::~TemporaryFile() +{ + if (m_file) + BNFreeTemporaryFile(m_file); +} + + +string TemporaryFile::GetPath() const +{ + if (!m_file) + return string(); + + char* str = BNGetTemporaryFilePath(m_file); + string result = str; + BNFreeString(str); + return result; +} + + +DataBuffer TemporaryFile::GetContents() +{ + if (!m_file) + return DataBuffer(); + return DataBuffer(BNGetTemporaryFileContents(m_file)); +} -- cgit v1.3.1