diff options
Diffstat (limited to 'plugins/ropgadgets/plugin.c')
-rw-r--r-- | plugins/ropgadgets/plugin.c | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/plugins/ropgadgets/plugin.c b/plugins/ropgadgets/plugin.c new file mode 100644 index 0000000..a243a74 --- /dev/null +++ b/plugins/ropgadgets/plugin.c @@ -0,0 +1,95 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * plugin.c - description et intégration du présent greffon + * + * Copyright (C) 2015 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * 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 Foobar. If not, see <http://www.gnu.org/licenses/>. + */ + + +#include "plugin.h" + + +#include <i18n.h> + + +#include <gtkext/easygtk.h> +#include <plugins/plugin-def.h> + + +#include "select.h" + + + +DEFINE_CHRYSALIDE_ACTIVE_PLUGIN("ROP gadgets", "Find available gadgets for a ROP chain", "0.1.0", + PGA_PLUGIN_INIT); + + + +/* Réagit avec le menu "Greffons -> Lister les gadgets ROP". */ +static void mcb_plugins_list_rop_gadgets(GtkMenuItem *, GObject *); + + + +/****************************************************************************** +* * +* Paramètres : plugin = greffon à manipuler. * +* ref = espace de référencement global. * +* * +* Description : Prend acte du chargement du greffon. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin, GObject *ref) +{ + GtkContainer *menubar; /* Support pour éléments */ + GtkWidget *submenuitem; /* Sous-élément de menu */ + + menubar = GTK_CONTAINER(g_object_get_data(ref, "menubar_plugins")); + if (menubar == NULL) return false; + + submenuitem = qck_create_menu_item(ref, "mnu_plugins_ropgadgets", _("List ROP gadgets"), + G_CALLBACK(mcb_plugins_list_rop_gadgets), ref); + gtk_container_add(GTK_CONTAINER(menubar), submenuitem); + + return true; + +} + + +/****************************************************************************** +* * +* Paramètres : menuitem = élément de menu sélectionné. * +* ref = adresse de l'espace de référencement global. * +* * +* Description : Réagit avec le menu "Greffons -> Lister les gadgets ROP". * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +static void mcb_plugins_list_rop_gadgets(GtkMenuItem *menuitem, GObject *ref) +{ + run_rop_finder_assistant(ref, NULL); + +} |