diff options
Diffstat (limited to 'src/analysis/binary.c')
-rw-r--r-- | src/analysis/binary.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/analysis/binary.c b/src/analysis/binary.c index 17fc172..d860efc 100644 --- a/src/analysis/binary.c +++ b/src/analysis/binary.c @@ -351,6 +351,7 @@ static GRenderingLine *disassemble_binary_parts(GDelayedDisassembly *disass, GBi for (i = 0; i < disass->count; i++) { g_binary_part_get_values(disass->parts[i], NULL, &len, NULL); + if (len > disass->binary->bin_length) continue; sum += len; } @@ -362,6 +363,8 @@ static GRenderingLine *disassemble_binary_parts(GDelayedDisassembly *disass, GBi { g_binary_part_get_values(disass->parts[i], &pos, &len, &base); + if (len > disass->binary->bin_length) continue; + /* Décodage des instructions */ start = pos; @@ -379,8 +382,6 @@ static GRenderingLine *disassemble_binary_parts(GDelayedDisassembly *disass, GBi /* Ajout des prototypes de fonctions */ - printf("BASE == 0x%08llx\n", base); - for (; k < count; k++) { routine_offset = g_binary_routine_get_address(routines[k]); |