summaryrefslogtreecommitdiff
path: root/plugins/elf/core.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-05-07 15:00:14 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-05-07 15:00:14 (GMT)
commit83da8ea946dc50941838ec8b3951108f5e16642e (patch)
tree06d30655b95e856f2def3da0fab24067271de8b0 /plugins/elf/core.c
parentc136e2c4c1ad02ea2e363fbe71ce54c6255793e2 (diff)
Described binary formats and improved their loading.
Diffstat (limited to 'plugins/elf/core.c')
-rw-r--r--plugins/elf/core.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/plugins/elf/core.c b/plugins/elf/core.c
index 7486242..03d5964 100644
--- a/plugins/elf/core.c
+++ b/plugins/elf/core.c
@@ -54,13 +54,7 @@ G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin)
{
bool result; /* Bilan à retourner */
- result = register_format_matcher(elf_is_matching, NULL);
-
- if (result)
- result = register_format_loader("elf", "Executable and Linkable Format", g_elf_format_new);
-
- if (result)
- result = add_format_elf_module_to_python_module();
+ result = add_format_elf_module_to_python_module();
return result;
@@ -85,19 +79,12 @@ G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin)
G_MODULE_EXPORT void chrysalide_plugin_handle_binary_content(const GPluginModule *plugin, PluginAction action, GBinContent *content, gid_t gid, GtkStatusStack *status)
{
- vmpa2t addr; /* Tête de lecture initiale */
bool test; /* Bilan des accès mémoire */
- char magic[SELFMAG]; /* Idenfiant standard */
GExeFormat *format; /* Format ELF reconnu */
GLoadedContent *loaded; /* Représentation chargée */
GContentResolver *resolver; /* Resolveur de contenus */
- init_vmpa(&addr, 0, VMPA_NO_VIRTUAL);
-
- test = g_binary_content_read_raw(content, &addr, SELFMAG, (bin_t *)magic);
-
- if (test)
- test = (memcmp(magic, ELFMAG, SELFMAG) == 0);
+ test = check_elf_format(content);
if (test)
{