From ad3bf849178921ead3bbbd3ba84f4b9405f69253 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Sun, 22 Jan 2017 18:21:43 +0100 Subject: Updated virtual addresses when filling the gap between two binary areas. --- ChangeLog | 5 +++++ src/analysis/disass/area.c | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9edebd6..0c3d3b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +17-01-22 Cyrille Bagard + + * src/analysis/disass/area.c: + Update virtual addresses when filling the gap between two binary areas. + 17-01-20 Cyrille Bagard * src/analysis/disass/disassembler.c: diff --git a/src/analysis/disass/area.c b/src/analysis/disass/area.c index 389dd75..8da8b60 100644 --- a/src/analysis/disass/area.c +++ b/src/analysis/disass/area.c @@ -1262,6 +1262,25 @@ static void g_area_collector_do_compute(GAreaCollector *collector, GtkStatusStac } + else + { + /** + * La comparaison entre les bordures se réalise selon les positions + * physiques renseignées. + * + * Aussi, même dans le cas d'une jointure sans espace, il se peut que + * la transition concerne deux zones aux adresses virtuelles non + * consécutives. + * + * Comme "old" est mise à jour pour devenir le point de départ de + * la zone suivante, on se doit de même à jour les deux positions : + * physique et virtuelle. + */ + + copy_vmpa(old, new); + + } + } bool build_area_from_portion(GBinPortion *portion, GBinPortion *parent, BinaryPortionVisit visit, void *unused) -- cgit v0.11.2-87-g4458