/* OpenIDA - Outil d'analyse de fichiers binaires * plugin-def.h - prototypes pour les définitions de base utiles aux greffons * * Copyright (C) 2009-2012 Cyrille Bagard * * This file is part of OpenIDA. * * OpenIDA 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. * * OpenIDA 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_PLUGIN_DEF_H #define _PLUGINS_PLUGIN_DEF_H #include "../analysis/binary.h" #include "../debug/debugger.h" /* Types de greffon */ typedef enum _PluginType { PGT_BINARY = (1 << 0) /* Actions sur un binaire */ } PluginType; /* Action(s) menée(s) par le greffon */ typedef enum _PluginAction { PGA_NONE = (0 << 0), /* Aucun intérêt */ PGA_FORMAT_MATCHER = (1 << 0), /* Détection et chargement */ PGA_DISASSEMBLE = (1 << 1), /* Désassemblage (non trivial) */ PGA_BINARY_DISASSEMBLED = (1 << 2), /* Désassemblage fini */ PGA_BINARY_LINKED = (1 << 3), /* Liaison en place */ PGA_BINARY_BOUNDED = (1 << 4), /* Limites de routines définies*/ PGA_BINARY_GROUPED = (1 << 5), /* Instructions regroupées */ PGA_BINARY_PRINTED = (1 << 6), /* Instructions imprimées */ PGA_DISASS_PROCESS = (1 << 6), /* Traitement niveau assembleur*/ PGA_CODE_PROCESS = (1 << 7), /* Traitement du code existant */ PGA_DEBUGGER_ATTACH = (1 << 8), /* Activation d'un débogueur */ PGA_DEBUGGER_DETACH = (1 << 9) /* Désactivation d'un débogueur*/ } PluginAction; /* Actions éligibles pour run_plugins_on_binary() */ #define PGA_BINARY_ACTIONS ( 0 \ | PGA_BINARY_DISASSEMBLED | PGA_BINARY_LINKED \ | PGA_BINARY_BOUNDED | PGA_BINARY_PRINTED \ ) /* Fournit une indication sur le(s) type(s) du greffon présent. */ typedef PluginType (* get_plugin_type_fc) (void); /* Fournit une indication sur le type d'opération(s) menée(s). */ //typedef PluginAction (* get_plugin_action_fc) (void); /* PGA_FORMAT_MATCHER */ /* Bilans d'une reconnaissance */ typedef enum _MatchingFormatAction { MFA_NONE, /* Aucune détection */ MFA_MATCHED, /* Format reconnu */ MFA_RELOAD, /* Rechargemet opéré */ MFA_COUNT } MatchingFormatAction; #endif /* _PLUGINS_PLUGIN_DEF_H */