diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-07-09 23:05:13 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-07-09 23:05:13 (GMT) |
commit | 2be3bca7ff0f8ab40615fdbf72c149cd6439b0ac (patch) | |
tree | 0fc1bfc767eead1f33d41be737635d67b9ce5a84 /src/analysis/disass/fetch.c | |
parent | 66326b95195516864fc7721419250c4fef3f8f4b (diff) |
Tried to use virtual addresses as often as possible.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@545 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/disass/fetch.c')
-rw-r--r-- | src/analysis/disass/fetch.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/analysis/disass/fetch.c b/src/analysis/disass/fetch.c index 16b81c8..b30d5a6 100644 --- a/src/analysis/disass/fetch.c +++ b/src/analysis/disass/fetch.c @@ -63,6 +63,7 @@ static void ensure_all_mem_areas_are_filled(mem_area **, size_t *, const GLoaded static void follow_execution_flow(const GLoadedBinary *binary, GProcContext *ctx, mem_area **areas, size_t *count, status_blob_info *info, virt_t virt) { vmpa2t addr; /* Conversion en pleine adresse*/ + GExeFormat *format; /* Format du fichier binaire */ size_t index; /* Zone trouvée à traiter */ printf("-- follow 0x%08x\n", (unsigned int)virt); @@ -73,9 +74,11 @@ static void follow_execution_flow(const GLoadedBinary *binary, GProcContext *ctx while (g_proc_context_has_drop_points(ctx)) { virt = g_proc_context_pop_drop_point(ctx); - init_vmpa(&addr, VMPA_NO_PHYSICAL, virt); + format = g_loaded_binary_get_format(binary); + if (!g_exe_format_translate_address_into_vmpa(format, virt, &addr)) + init_vmpa(&addr, VMPA_NO_PHYSICAL, virt); printf(" ++ point 0x%08x\n", (unsigned int)virt); |