summaryrefslogtreecommitdiff
path: root/plugins/androhelpers/androhelpers.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2012-12-10 23:41:09 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2012-12-10 23:41:09 (GMT)
commit79ec14ee5c1cea5c4ad345a7047b47b9205fc29e (patch)
tree0596bb4b7910964ef96c3705c80ec5dba677eeb0 /plugins/androhelpers/androhelpers.c
parent42420cfa1f406a5f0a9f062b258ece72098635b5 (diff)
Took care of Dalvik switch cases.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@299 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'plugins/androhelpers/androhelpers.c')
-rw-r--r--plugins/androhelpers/androhelpers.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/plugins/androhelpers/androhelpers.c b/plugins/androhelpers/androhelpers.c
index f7360f8..c61ce02 100644
--- a/plugins/androhelpers/androhelpers.c
+++ b/plugins/androhelpers/androhelpers.c
@@ -27,7 +27,11 @@
#include <string.h>
+#include <format/dex/dex.h>
+
+
#include "params.h"
+#include "switch.h"
#include "try_n_catch.h"
@@ -92,16 +96,25 @@ bool execute_action_on_binary(GPluginModule *plugin, GLoadedBinary *binary, Plug
{
bool result; /* Bilan à retourner */
+ if (!G_IS_DEX_FORMAT(g_loaded_binary_get_format(binary)))
+ return false;
+
result = true;
if (action == PGA_BINARY_DISASSEMBLED)
result &= replace_parameters(binary);
else if (action == PGA_BINARY_LINKED)
+ {
+ result &= extract_switch_info(binary, true);
result &= process_exception_handlers(binary, true);
+ }
else if (action == PGA_BINARY_PRINTED)
+ {
+ result &= extract_switch_info(binary, false);
result &= process_exception_handlers(binary, false);
+ }
return result;