diff options
Diffstat (limited to 'plugins/pychrysalide')
| -rw-r--r-- | plugins/pychrysalide/analysis/db/constants.c | 11 | ||||
| -rw-r--r-- | plugins/pychrysalide/arch/Makefile.am | 1 | ||||
| -rw-r--r-- | plugins/pychrysalide/arch/constants.c | 70 | ||||
| -rw-r--r-- | plugins/pychrysalide/arch/constants.h | 38 | ||||
| -rw-r--r-- | plugins/pychrysalide/arch/vmpa.c | 4 | 
5 files changed, 120 insertions, 4 deletions
| diff --git a/plugins/pychrysalide/analysis/db/constants.c b/plugins/pychrysalide/analysis/db/constants.c index 07c7a06..76385fd 100644 --- a/plugins/pychrysalide/analysis/db/constants.c +++ b/plugins/pychrysalide/analysis/db/constants.c @@ -1,6 +1,6 @@  /* Chrysalide - Outil d'analyse de fichiers binaires - * constants.c - équivalent Python partiel du fichier "plugins/dex/dex_def.h" + * constants.c - ajout des constantes liées aux bases de données   *   * Copyright (C) 2018 Cyrille Bagard   * @@ -63,7 +63,8 @@ bool define_db_protocol_constants(PyTypeObject *type)          goto exit;      } -    result = attach_constants_group(type, false, "DBFeatures", values, "Features provided by database items."); +    result = attach_constants_group(type, false, "DBFeatures", values, +                                    "Features provided by database items.");   exit: @@ -104,7 +105,8 @@ bool define_db_item_constants(PyTypeObject *type)          goto exit;      } -    result = attach_constants_group(type, true, "DbItemFlags", values, "Properties of a database item."); +    result = attach_constants_group(type, true, "DbItemFlags", values, +                                    "Properties of a database item.");   exit: @@ -142,7 +144,8 @@ bool define_hub_server_constants(PyTypeObject *type)          goto exit;      } -    result = attach_constants_group(type, false, "ServerStartStatus", values, "Status of a server start."); +    result = attach_constants_group(type, false, "ServerStartStatus", values, +                                    "Status of a server start.");   exit: diff --git a/plugins/pychrysalide/arch/Makefile.am b/plugins/pychrysalide/arch/Makefile.am index b26727d..8b0e992 100644 --- a/plugins/pychrysalide/arch/Makefile.am +++ b/plugins/pychrysalide/arch/Makefile.am @@ -2,6 +2,7 @@  noinst_LTLIBRARIES = libpychrysaarch.la  libpychrysaarch_la_SOURCES =			\ +	constants.h constants.c				\  	context.h context.c					\  	feeder.h feeder.c					\  	immediate.h immediate.c				\ diff --git a/plugins/pychrysalide/arch/constants.c b/plugins/pychrysalide/arch/constants.c new file mode 100644 index 0000000..341cb63 --- /dev/null +++ b/plugins/pychrysalide/arch/constants.c @@ -0,0 +1,70 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * constants.c - ajout des constantes de base pour les architectures + * + * Copyright (C) 2018 Cyrille Bagard + * + *  This file is part of Chrysalide. + * + *  Chrysalide is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 3 of the License, or + *  (at your option) any later version. + * + *  Chrysalide is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details. + * + *  You should have received a copy of the GNU General Public License + *  along with this program; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + */ + + +#include "constants.h" + + +#include <arch/vmpa.h> + + +#include "../helpers.h" + + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : type = type dont le dictionnaire est à compléter.            * +*                                                                             * +*  Description : Définit les constantes relatives aux emplacements.           * +*                                                                             * +*  Retour      : true en cas de succès de l'opération, false sinon.           * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +bool define_arch_vmpa_constants(PyTypeObject *type) +{ +    bool result;                            /* Bilan à retourner           */ +    PyObject *values;                       /* Groupe de valeurs à établir */ + +    values = PyDict_New(); + +    result = add_const_to_group(values, "NO_PHYSICAL", VMPA_NO_PHYSICAL); +    if (result) result = add_const_to_group(values, "NO_VIRTUAL", VMPA_NO_VIRTUAL); + +    if (!result) +    { +        Py_DECREF(values); +        goto exit; +    } + +    result = attach_constants_group(type, false, "VmpaSpecialValue", values, +                                    "Special values for memory locations."); + + exit: + +    return result; + +} diff --git a/plugins/pychrysalide/arch/constants.h b/plugins/pychrysalide/arch/constants.h new file mode 100644 index 0000000..d1fc2d4 --- /dev/null +++ b/plugins/pychrysalide/arch/constants.h @@ -0,0 +1,38 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * constants.h - prototypes pour l'ajout des constantes de base pour les architectures + * + * Copyright (C) 2019 Cyrille Bagard + * + *  This file is part of Chrysalide. + * + *  Chrysalide is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 3 of the License, or + *  (at your option) any later version. + * + *  Chrysalide is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details. + * + *  You should have received a copy of the GNU General Public License + *  along with this program; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA + */ + + +#ifndef _PLUGINS_PYCHRYSALIDE_ARCH_CONSTANTS_H +#define _PLUGINS_PYCHRYSALIDE_ARCH_CONSTANTS_H + + +#include <Python.h> +#include <stdbool.h> + + +/* Définit les constantes relatives aux emplacements. */ +bool define_arch_vmpa_constants(PyTypeObject *); + + + +#endif  /* _PLUGINS_PYCHRYSALIDE_ARCH_CONSTANTS_H */ diff --git a/plugins/pychrysalide/arch/vmpa.c b/plugins/pychrysalide/arch/vmpa.c index 015687f..aa745cf 100644 --- a/plugins/pychrysalide/arch/vmpa.c +++ b/plugins/pychrysalide/arch/vmpa.c @@ -32,6 +32,7 @@  #include <i18n.h> +#include "constants.h"  #include "../access.h"  #include "../helpers.h" @@ -681,6 +682,9 @@ bool ensure_python_vmpa_is_registered(void)          if (!register_python_module_object(module, type))              return false; +        if (!define_arch_vmpa_constants(type)) +            return false; +      }      return true; | 
