diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-07-17 16:36:21 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-07-17 16:36:21 (GMT) |
commit | 24d3836fcf8d443eb654b981f65478cd9923b8f1 (patch) | |
tree | 7672a28b864127e8958c3c6cce751dcf646d2fbe /src | |
parent | a61f089babe336b012da31a494b0f7470b6e1a9a (diff) |
Updated the Python bindings.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@552 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src')
-rw-r--r-- | src/analysis/binary.c | 4 | ||||
-rw-r--r-- | src/analysis/disass/area.c | 21 | ||||
-rw-r--r-- | src/arch/instruction.c | 5 | ||||
-rw-r--r-- | src/arch/processor.c | 3 | ||||
-rw-r--r-- | src/arch/vmpa.c | 2 | ||||
-rw-r--r-- | src/arch/vmpa.h | 2 | ||||
-rwxr-xr-x | src/format/dex/dex.h | 9 | ||||
-rw-r--r-- | src/format/symbol.c | 14 | ||||
-rw-r--r-- | src/format/symbol.h | 4 | ||||
-rw-r--r-- | src/glibext/delayed.c | 5 | ||||
-rw-r--r-- | src/glibext/gbufferline.h | 4 | ||||
-rw-r--r-- | src/gtkext/gtkextstatusbar.c | 14 |
12 files changed, 51 insertions, 36 deletions
diff --git a/src/analysis/binary.c b/src/analysis/binary.c index e5b9a46..d7682cd 100644 --- a/src/analysis/binary.c +++ b/src/analysis/binary.c @@ -941,7 +941,7 @@ const char *g_loaded_binary_get_name(const GLoadedBinary *binary, bool full) * * * Description : Fournit le format de fichier reconnu dans le contenu binaire.* * * -* Retour : Adresse du format reconnu. * +* Retour : Instance du format reconnu. * * * * Remarques : - * * * @@ -962,7 +962,7 @@ GExeFormat *g_loaded_binary_get_format(const GLoadedBinary *binary) * * * Description : Fournit le processeur de l'architecture liée au binaire. * * * -* Retour : Adresse du processeur associé. * +* Retour : Instance du processeur associé. * * * * Remarques : - * * * diff --git a/src/analysis/disass/area.c b/src/analysis/disass/area.c index a7c44c0..dd35eaa 100644 --- a/src/analysis/disass/area.c +++ b/src/analysis/disass/area.c @@ -1568,27 +1568,6 @@ size_t find_memory_area_by_addr(mem_area *list, size_t count, const vmpa2t *addr } - /* - if (addr->virtual == 0x8540) - { - size_t i; - - for (i = 0; i < count; i++) - printf("[%zu] AREAS :: 0x%08x + %x\n", i, - (unsigned int)list[i].range.addr.virtual, - (unsigned int)list[i].range.length); - - - - - printf(" == CMP == 0x%08x / 0x%08x\n", - (unsigned int)addr->physical, - (unsigned int)addr->virtual); - - } - */ - - found = bsearch(addr, list, count, sizeof(mem_area), (__compar_fn_t)find_mem_area); result = (found != NULL ? found - list : count); diff --git a/src/arch/instruction.c b/src/arch/instruction.c index b895af0..d6bf183 100644 --- a/src/arch/instruction.c +++ b/src/arch/instruction.c @@ -250,9 +250,6 @@ void g_arch_instruction_set_hook(GArchInstruction *instr, InstrProcessHook type, void g_arch_instruction_call_hook(GArchInstruction *instr, InstrProcessHook type, GArchProcessor *proc, GProcContext *context, GBinFormat *format) { - if (instr->range.addr.virtual == 0x83c2) - printf(" [%u] HAS BRANCH ? %p\n", (unsigned int)type, instr->hooks[type]); - assert(type < IPH_COUNT); if (instr->hooks[type] != NULL) @@ -671,7 +668,7 @@ bool g_arch_instruction_has_sources(const GArchInstruction *instr) * * * Description : Fournit les origines d'une instruction donnée. * * * -* Retour : Nombre de ces destinations. * +* Retour : Nombre de ces origines. * * * * Remarques : - * * * diff --git a/src/arch/processor.c b/src/arch/processor.c index 86e7845..95176e9 100644 --- a/src/arch/processor.c +++ b/src/arch/processor.c @@ -327,6 +327,9 @@ void g_arch_processor_set_disassembled_instructions(GArchProcessor *proc, GArchI { GArchInstruction *iter; /* Boucle de parcours */ + /* TODO : vider une éventuelle liste existante */ + /* TODO : incrémenter les références (cf. code Python) */ + ainstr_list_for_each(iter, list) { /* Mise à disposition de d'avantage d'espace */ diff --git a/src/arch/vmpa.c b/src/arch/vmpa.c index b10b007..d966341 100644 --- a/src/arch/vmpa.c +++ b/src/arch/vmpa.c @@ -913,7 +913,7 @@ bool mrange_contains_addr_inclusive(const mrange_t *range, const vmpa2t *addr) * Paramètres : range = zone mémoire à consulter. * * addr = localisation mémoire à déterminer. * * * -* Description : Calcule la position extérieure final d'une couverture. * +* Description : Calcule la position extérieure finale d'une couverture. * * * * Retour : - * * * diff --git a/src/arch/vmpa.h b/src/arch/vmpa.h index 4611ebf..368b765 100644 --- a/src/arch/vmpa.h +++ b/src/arch/vmpa.h @@ -193,7 +193,7 @@ bool mrange_contains_addr(const mrange_t *, const vmpa2t *); /* Indique si une localisation est incluse dans une zone ou non. */ bool mrange_contains_addr_inclusive(const mrange_t *, const vmpa2t *); -/* Calcule la position extérieure final d'une couverture. */ +/* Calcule la position extérieure finale d'une couverture. */ void compute_mrange_end_addr(const mrange_t *, vmpa2t *); /* Transforme un emplacement physique en chaîne de caractères. */ diff --git a/src/format/dex/dex.h b/src/format/dex/dex.h index aca6cef..7f427a3 100755 --- a/src/format/dex/dex.h +++ b/src/format/dex/dex.h @@ -57,6 +57,15 @@ GType g_dex_format_get_type(void); /* Prend en charge un nouveau format DEX. */ GBinFormat *g_dex_format_new(const bin_t *, off_t); +/* Redéfinition : classe issue du code source (instance) */ +typedef struct _GDexClass GDexClass; + +/* Dénombre le nombre de classes trouvées. */ +size_t g_dex_format_count_classes(const GDexFormat *); + +/* Fournit une classe du format chargée en mémoire. */ +GDexClass *g_dex_format_get_class(const GDexFormat *, size_t); + #endif /* _FORMAT_DEX_DEX_H */ diff --git a/src/format/symbol.c b/src/format/symbol.c index 898f00d..70a1d24 100644 --- a/src/format/symbol.c +++ b/src/format/symbol.c @@ -310,7 +310,13 @@ const char *g_binary_symbol_get_label(const GBinSymbol *symbol) void g_binary_symbol_set_alt_label(GBinSymbol *symbol, const char *alt) { - symbol->alt = strdup(alt); + if (symbol->alt != NULL) + free(symbol->alt); + + if (alt == NULL) + symbol->alt = NULL; + else + symbol->alt = strdup(alt); } @@ -493,7 +499,7 @@ void g_binary_symbol_attach_instruction(GBinSymbol *symbol, GArchInstruction *in * * * Description : Fournit l'éventuelle routine associée au symbole. * * * -* Retour : - * +* Retour : Instance GLib en place ou NULL si aucune. * * * * Remarques : Il n'y a pas de transfert de propriété ici ! * * * @@ -512,7 +518,7 @@ GBinRoutine *g_binary_symbol_get_routine(const GBinSymbol *symbol) * * * Description : Fournit l'éventuelle instruction associée au symbole. * * * -* Retour : - * +* Retour : Instance GLib en place ou NULL si aucune. * * * * Remarques : Il n'y a pas de transfert de propriété ici ! * * * @@ -551,7 +557,7 @@ void g_binary_symbol_set_comment(GBinSymbol *symbol, GDbComment *comment) * * * Description : Fournit l'éventuel commentaire associé au symbole. * * * -* Retour : - * +* Retour : Instance GLib en place ou NULL si aucune. * * * * Remarques : Il n'y a pas de transfert de propriété ici ! * * * diff --git a/src/format/symbol.h b/src/format/symbol.h index e0b657d..1368691 100644 --- a/src/format/symbol.h +++ b/src/format/symbol.h @@ -44,7 +44,9 @@ typedef enum _SymbolType STP_FUNCTION, /* Simple morceau de code */ STP_ENTRY_POINT, /* Morceau de code en entrée */ STP_STRING, /* Chaîne de caractères */ - STP_RO_STRING /* Chaîne de caractères */ + STP_RO_STRING, /* Chaîne de caractères */ + + STP_COUNT } SymbolType; diff --git a/src/glibext/delayed.c b/src/glibext/delayed.c index 455cc03..32a3d16 100644 --- a/src/glibext/delayed.c +++ b/src/glibext/delayed.c @@ -561,7 +561,10 @@ bool init_work_queue(GObject *ref) queue = g_object_new(G_TYPE_WORK_QUEUE, NULL); - queue->statusbar = g_object_get_data(ref, "statusbar"); + if (ref != NULL) + queue->statusbar = g_object_get_data(ref, "statusbar"); + else + queue->statusbar = NULL; if (queue != NULL) _get_work_queue(queue); diff --git a/src/glibext/gbufferline.h b/src/glibext/gbufferline.h index 6da36af..3a47ee7 100644 --- a/src/glibext/gbufferline.h +++ b/src/glibext/gbufferline.h @@ -89,7 +89,9 @@ typedef enum _BufferLineFlags BLF_NONE = 0 << 0, /* Aucune */ BLF_HAS_CODE = 1 << 0, /* La ligne contient du code */ BLF_ENTRYPOINT = 1 << 1, /* Représentation d'une entrée */ - BLF_BOOKMARK = 1 << 2 /* Signet associé */ + BLF_BOOKMARK = 1 << 2, /* Signet associé */ + + BLF_ALL = ((1 << 3) - 1) } BufferLineFlags; diff --git a/src/gtkext/gtkextstatusbar.c b/src/gtkext/gtkextstatusbar.c index 5fd37fe..74c23bd 100644 --- a/src/gtkext/gtkextstatusbar.c +++ b/src/gtkext/gtkextstatusbar.c @@ -223,6 +223,8 @@ bstatus_id_t gtk_extended_status_bar_push(GtkExtStatusBar *bar, const char *mess size_t index; /* Indice du nouvel élément */ bar_update_info *info; /* Informations à mémoriser */ + if (bar == NULL) return 0; + /* Mise à jour de la pile */ g_mutex_lock(&bar->stack_access); @@ -274,6 +276,8 @@ void gtk_extended_status_bar_update_activity(GtkExtStatusBar *bar, bstatus_id_t { bar_update_info *info; /* Informations à mémoriser */ + if (bar == NULL) return; + /* Mise à jour de la pile */ g_mutex_lock(&bar->stack_access); @@ -315,6 +319,8 @@ void gtk_extended_status_bar_remove(GtkExtStatusBar *bar, bstatus_id_t id) size_t i; /* Boucle de parcours */ bar_update_info *info; /* Informations à mémoriser */ + if (bar == NULL) return; + /* Mise à jour de la pile */ g_mutex_lock(&bar->stack_access); @@ -402,6 +408,8 @@ static gboolean gtk_extended_status_update(bar_update_info *info) static void free_bar_update_info(bar_update_info *info) { + if (info->bar != NULL) + g_object_unref(G_OBJECT(info->bar)); free(info); @@ -425,6 +433,8 @@ static void _gtk_extended_status_bar_change_content(GtkExtStatusBar *bar) { size_t top; /* Indice de l'élément visé */ + if (bar == NULL) return; + g_mutex_lock(&bar->stack_access); if (bar->cur_msg > 0) @@ -470,6 +480,8 @@ static void _gtk_extended_status_bar_update_activity(GtkExtStatusBar *bar) double value; /* Valeur à prendre en compte */ gchar percent[5]; /* Pourcentage en version txt. */ + if (bar == NULL) return; + g_mutex_lock(&bar->stack_access); if (bar->stack_size > 0) @@ -556,6 +568,8 @@ void fini_progessive_status(status_blob_info *info) { gtk_extended_status_bar_remove(info->bar, info->id); + if (info->bar != NULL) + g_object_unref(G_OBJECT(info->bar)); free(info); |