diff options
Diffstat (limited to 'src/format/dex/class.c')
| -rw-r--r-- | src/format/dex/class.c | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/src/format/dex/class.c b/src/format/dex/class.c index d08c8e2..cdf6c2c 100644 --- a/src/format/dex/class.c +++ b/src/format/dex/class.c @@ -296,6 +296,39 @@ GBinPart **g_dex_class_get_parts(const GDexClass *class, GBinPart **parts, size_  /******************************************************************************  *                                                                             * +*  Paramètres  : class = informations chargées à consulter.                   * +*                addr  = adresse de la routine à retrouver.                   * +*                                                                             * +*  Description : Retrouve si possible la méthode associée à une adresse.      * +*                                                                             * +*  Retour      : Méthde retrouvée ou NULL en cas d'échec.                     * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +GDexMethod *g_dex_class_find_method_by_address(const GDexClass *class, vmpa_t addr) +{ +    GDexMethod *result;                     /* Trouvaille à retourner      */ +    size_t i;                               /* Boucle de parcours          */ + +    result = NULL; + +    for (i = 0; i < class->dmethods_count && result == NULL; i++) +        if (addr == (vmpa_t)g_dex_method_get_offset(class->direct_methods[i])) +            result = class->direct_methods[i]; + +    for (i = 0; i < class->vmethods_count && result == NULL; i++) +        if (addr == (vmpa_t)g_dex_method_get_offset(class->virtual_methods[i])) +            result = class->virtual_methods[i]; + +    return result; + +} + + +/****************************************************************************** +*                                                                             *  *  Paramètres  : class  = informations chargées à consulter.                  *  *                format = représentation interne du format DEX à compléter.   *  *                                                                             * | 
