diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-12-30 08:25:05 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-12-30 08:25:05 (GMT) |
commit | 57d7eff57c20e75aaa4ccd34f1d9d733e12bb232 (patch) | |
tree | a60199f7323a31e0bf22b8f8747fdf402f2c481d /src/arch/context.c | |
parent | 19e1a97fafb1b73d0efcd995b31951daf1a5c661 (diff) |
Tracked each binary area during the disassembling process and tried to follow the execution flow.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@445 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/context.c')
-rw-r--r-- | src/arch/context.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/arch/context.c b/src/arch/context.c index 46c4dd1..794030a 100644 --- a/src/arch/context.c +++ b/src/arch/context.c @@ -39,6 +39,9 @@ static void g_proc_context_class_init(GProcContextClass *); /* Initialise une instance de contexte de processeur. */ static void g_proc_context_init(GProcContext *); +/* Ajoute une adresse virtuelle comme point de départ de code. */ +static void _g_proc_context_push_drop_point(GProcContext *, virt_t); + /* Indique le type définit par la GLib pour le contexte de processeur. */ @@ -60,6 +63,7 @@ G_DEFINE_TYPE(GProcContext, g_proc_context, G_TYPE_OBJECT); static void g_proc_context_class_init(GProcContextClass *klass) { + klass->push_point = (push_drop_point_fc)_g_proc_context_push_drop_point; } @@ -97,7 +101,7 @@ static void g_proc_context_init(GProcContext *ctx) * * ******************************************************************************/ -void g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr) +static void _g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr) { ctx->drop_points = (virt_t *)realloc(ctx->drop_points, ++ctx->dp_count * sizeof(virt_t)); @@ -108,6 +112,26 @@ void g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr) /****************************************************************************** * * +* Paramètres : ctx = contexte de désassemblage à compléter. * +* addr = adresse d'un nouveau point de départ à traiter. * +* * +* Description : Ajoute une adresse virtuelle comme point de départ de code. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_proc_context_push_drop_point(GProcContext *ctx, virt_t addr) +{ + return G_PROC_CONTEXT_GET_CLASS(ctx)->push_point(ctx, addr); + +} + + +/****************************************************************************** +* * * Paramètres : ctx = contexte de désassemblage à consulter. * * * * Description : Indique si des points de départ restent à traiter ou non. * |