summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-07-17 16:36:21 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-07-17 16:36:21 (GMT)
commit24d3836fcf8d443eb654b981f65478cd9923b8f1 (patch)
tree7672a28b864127e8958c3c6cce751dcf646d2fbe /src
parenta61f089babe336b012da31a494b0f7470b6e1a9a (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.c4
-rw-r--r--src/analysis/disass/area.c21
-rw-r--r--src/arch/instruction.c5
-rw-r--r--src/arch/processor.c3
-rw-r--r--src/arch/vmpa.c2
-rw-r--r--src/arch/vmpa.h2
-rwxr-xr-xsrc/format/dex/dex.h9
-rw-r--r--src/format/symbol.c14
-rw-r--r--src/format/symbol.h4
-rw-r--r--src/glibext/delayed.c5
-rw-r--r--src/glibext/gbufferline.h4
-rw-r--r--src/gtkext/gtkextstatusbar.c14
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);