mirror of
https://github.com/HavocFramework/Havoc
synced 2026-06-08 11:13:29 +00:00
84 lines
1.9 KiB
C++
84 lines
1.9 KiB
C++
#ifndef HAVOC_PYTHONAPI_H
|
|
#define HAVOC_PYTHONAPI_H
|
|
|
|
#include <global.hpp>
|
|
#pragma push_macro("slots")
|
|
#undef slots
|
|
#include <Python.h>
|
|
#pragma pop_macro("slots")
|
|
|
|
#define PY_FUNCTION( x ) PyObject* x( PyObject *self, PyObject *args );
|
|
#define PY_FUNCTION_KW( x ) PyObject* x( PyObject *self, PyObject *args, PyObject* kwargs );
|
|
|
|
namespace PythonAPI
|
|
{
|
|
namespace Havoc
|
|
{
|
|
extern PyMethodDef PyMethode_Havoc[];
|
|
|
|
namespace Core
|
|
{
|
|
PY_FUNCTION( Load )
|
|
PY_FUNCTION( GetDemons )
|
|
PY_FUNCTION( GetListeners )
|
|
PY_FUNCTION( GetAgents )
|
|
PY_FUNCTION_KW( GeneratePayload )
|
|
PY_FUNCTION_KW( RegisterCommand )
|
|
PY_FUNCTION( RegisterModule )
|
|
PY_FUNCTION( RegisterCallback )
|
|
}
|
|
|
|
namespace PyModule
|
|
{
|
|
extern struct PyModuleDef havoc;
|
|
}
|
|
|
|
PyMODINIT_FUNC PyInit_Havoc(void);
|
|
}
|
|
|
|
namespace HavocUI
|
|
{
|
|
extern PyMethodDef PyMethode_HavocUI[];
|
|
|
|
namespace Core
|
|
{
|
|
PY_FUNCTION( MessageBox )
|
|
PY_FUNCTION( ErrorMessage )
|
|
PY_FUNCTION( CreateTab )
|
|
PY_FUNCTION( InputDialog )
|
|
PY_FUNCTION( OpenFileDialog )
|
|
PY_FUNCTION( SaveFileDialog )
|
|
PY_FUNCTION( QuestionDialog )
|
|
PY_FUNCTION( ColorDialog )
|
|
PY_FUNCTION( ProgressDialog )
|
|
}
|
|
|
|
namespace PyModule
|
|
{
|
|
extern struct PyModuleDef havocui;
|
|
}
|
|
|
|
PyMODINIT_FUNC PyInit_HavocUI(void);
|
|
|
|
}
|
|
}
|
|
|
|
namespace emb
|
|
{
|
|
typedef std::function<void(std::string)> stdout_write_type;
|
|
|
|
struct Stdout
|
|
{
|
|
PyObject_HEAD
|
|
stdout_write_type write;
|
|
};
|
|
|
|
PyObject* Stdout_write(PyObject* self, PyObject* args);
|
|
PyObject* Stdout_flush(PyObject* self, PyObject* args);
|
|
PyMODINIT_FUNC PyInit_emb(void);
|
|
void set_stdout(stdout_write_type write);
|
|
void reset_stdout();
|
|
};
|
|
|
|
#endif
|