diff options
Diffstat (limited to 'plugins/pychrysa/analysis/module.c')
-rw-r--r-- | plugins/pychrysa/analysis/module.c | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/plugins/pychrysa/analysis/module.c b/plugins/pychrysa/analysis/module.c index 54509a8..e13c8f8 100644 --- a/plugins/pychrysa/analysis/module.c +++ b/plugins/pychrysa/analysis/module.c @@ -26,6 +26,97 @@ #include "binary.h" +#include "binaries/module.h" + + + +/****************************************************************************** +* * +* Paramètres : module = module dont la définition est à compléter. * +* * +* Description : Ajoute le module 'analysis' au module Python. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool add_analysis_module_to_python_module(PyObject *super) +{ + bool result; /* Bilan à retourner */ + PyObject *module; /* Sous-module mis en place */ + int ret; /* Bilan d'un appel */ + + static PyModuleDef py_chrysalide_arch_module = { + + .m_base = PyModuleDef_HEAD_INIT, + + .m_name = "pychrysalide.analysis", + .m_doc = "Python module for Chrysalide.analysis", + + .m_size = -1, + + }; + + result = false; + + module = PyModule_Create(&py_chrysalide_arch_module); + if (module == NULL) return false; + + ret = PyState_AddModule(super, &py_chrysalide_arch_module); + if (ret != 0) goto aamtpm_exit; + + ret = _PyImport_FixupBuiltin(module, "pychrysalide.analysis"); + if (ret != 0) goto aamtpm_exit; + + Py_INCREF(module); + ret = PyModule_AddObject(super, "analysis", module); + if (ret != 0) goto aamtpm_exit; + + result = true; + + result &= register_python_loaded_binary(module); + + result &= add_analysis_binaries_module_to_python_module(module); + + aamtpm_exit: + + if (!result) + { + printf("something went wrong in %s...\n", __FUNCTION__); + /* ... */ + + } + + return result; + +} + + + + + + + + + + + + + + + + + + + + + + + +#if 0 +#include "binary.h" #include "block.h" #include "routine.h" #include "binaries/module.h" @@ -72,3 +163,4 @@ bool add_analysis_module_to_python_module(PyObject *super) return result; } +#endif |