diff options
Diffstat (limited to 'plugins/pychrysa/analysis/module.c')
-rw-r--r-- | plugins/pychrysa/analysis/module.c | 104 |
1 files changed, 19 insertions, 85 deletions
diff --git a/plugins/pychrysa/analysis/module.c b/plugins/pychrysa/analysis/module.c index e13c8f8..d45a3f1 100644 --- a/plugins/pychrysa/analysis/module.c +++ b/plugins/pychrysa/analysis/module.c @@ -25,8 +25,15 @@ #include "module.h" +#include <assert.h> + + #include "binary.h" +#include "block.h" +#include "routine.h" #include "binaries/module.h" +#include "blocks/module.h" +#include "db/module.h" @@ -48,7 +55,7 @@ bool add_analysis_module_to_python_module(PyObject *super) PyObject *module; /* Sous-module mis en place */ int ret; /* Bilan d'un appel */ - static PyModuleDef py_chrysalide_arch_module = { + static PyModuleDef py_chrysalide_analysis_module = { .m_base = PyModuleDef_HEAD_INIT, @@ -61,106 +68,33 @@ bool add_analysis_module_to_python_module(PyObject *super) result = false; - module = PyModule_Create(&py_chrysalide_arch_module); + module = PyModule_Create(&py_chrysalide_analysis_module); if (module == NULL) return false; - ret = PyState_AddModule(super, &py_chrysalide_arch_module); - if (ret != 0) goto aamtpm_exit; + ret = PyState_AddModule(super, &py_chrysalide_analysis_module); + if (ret != 0) goto loading_failed; ret = _PyImport_FixupBuiltin(module, "pychrysalide.analysis"); - if (ret != 0) goto aamtpm_exit; + if (ret != 0) goto loading_failed; Py_INCREF(module); ret = PyModule_AddObject(super, "analysis", module); - if (ret != 0) goto aamtpm_exit; + if (ret != 0) goto loading_failed; result = true; result &= register_python_loaded_binary(module); + result &= register_python_instr_block(module); + result &= register_python_binary_routine(module); result &= add_analysis_binaries_module_to_python_module(module); + result &= add_analysis_blocks_module_to_python_module(module); + result &= add_analysis_db_module_to_python_module(module); - aamtpm_exit: - - if (!result) - { - printf("something went wrong in %s...\n", __FUNCTION__); - /* ... */ - - } - - return result; - -} - - - - - - - - - - - - - - - - - - - - - - + loading_failed: -#if 0 -#include "binary.h" -#include "block.h" -#include "routine.h" -#include "binaries/module.h" -#include "blocks/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; - PyObject *module; - int ret; /* Bilan d'un appel */ - - static PyMethodDef py_analysis_methods[] = { - { NULL } - }; - - module = Py_InitModule("pychrysalide.analysis", py_analysis_methods); - if (module == NULL) return false; - - Py_INCREF(module); - ret = PyModule_AddObject(super, "pychrysalide.analysis", module); - - result = (ret == 0); - - result &= register_python_loaded_binary(module); - result &= register_python_binary_routine(module); - result &= register_python_instructions_block(module); - result &= add_binaries_module_to_python_module(module); - result &= add_blocks_module_to_python_module(module); + assert(result); return result; } -#endif |