diff options
Diffstat (limited to 'src/debug/jdwp/misc/id.c')
-rw-r--r-- | src/debug/jdwp/misc/id.c | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/src/debug/jdwp/misc/id.c b/src/debug/jdwp/misc/id.c deleted file mode 100644 index ba2724e..0000000 --- a/src/debug/jdwp/misc/id.c +++ /dev/null @@ -1,148 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * id.c - constitution des identifiants de taille dynamique - * - * Copyright (C) 2012-2017 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * Chrysalide is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Chrysalide is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Chrysalide. If not, see <http://www.gnu.org/licenses/>. - */ - - -#include "id.h" - - -#include "../../../common/endianness.h" - - - -/****************************************************************************** -* * -* Paramètres : id = identifiant à fournir. * -* size = référence pour la taille utilisée. * -* blob = flux de données à analyser. [OUT] * -* pos = position courante dans ce flux. [OUT] * -* len = taille totale des données à analyser. * -* * -* Description : Ecrit un identifiant enregistré dans une taille dynamique. * -* * -* Retour : Bilan de l'opération : true en cas de succès, false sinon. * -* * -* Remarques : - * -* * -******************************************************************************/ - -bool _set_jdwp_dynsized_id(const jdwp_dynsized_id *id, uint32_t size, bin_t *blob, off_t *pos, off_t len) -{ - uint8_t id8; /* Valeur sur 1 octets */ - uint16_t id16; /* Valeur sur 2 octets */ - uint32_t id32; /* Valeur sur 4 octets */ - uint64_t id64; /* Valeur sur 8 octets */ - - switch (size) - { - case 1: - id8 = (uint8_t)*id; - if (!write_u8(&id8, blob, pos, len, SRE_BIG)) - return false; - break; - - case 2: - id16 = (uint16_t)*id; - if (!write_u16(&id16, blob, pos, len, SRE_BIG)) - return false; - break; - - case 4: - id32 = (uint32_t)*id; - if (!write_u32(&id32, blob, pos, len, SRE_BIG)) - return false; - break; - - case 8: - id64 = (uint64_t)*id; - if (!write_u64(&id64, blob, pos, len, SRE_BIG)) - return false; - break; - - default: - return false; - break; - - } - - return true; - -} - - -/****************************************************************************** -* * -* Paramètres : blob = flux de données à analyser. * -* pos = position courante dans ce flux. [OUT] * -* len = taille totale des données à analyser. * -* size = référence pour la taille utilisée. * -* id = identifiant à fournir. [OUT] * -* * -* Description : Lit un identifiant enregistré dans une taille dynamique. * -* * -* Retour : Bilan de l'opération : true en cas de succès, false sinon. * -* * -* Remarques : - * -* * -******************************************************************************/ - -bool _get_jdwp_dynsized_id(const bin_t *blob, off_t *pos, off_t len, uint32_t size, jdwp_dynsized_id *id) -{ - uint8_t id8; /* Valeur sur 1 octets */ - uint16_t id16; /* Valeur sur 2 octets */ - uint32_t id32; /* Valeur sur 4 octets */ - uint64_t id64; /* Valeur sur 8 octets */ - - switch (size) - { - case 1: - if (!read_u8(&id8, blob, pos, len)) - return false; - *id = (jdwp_dynsized_id)id8; - break; - - case 2: - if (!read_u16(&id16, blob, pos, len, SRE_BIG)) - return false; - *id = (jdwp_dynsized_id)id16; - break; - - case 4: - if (!read_u32(&id32, blob, pos, len, SRE_BIG)) - return false; - *id = (jdwp_dynsized_id)id32; - break; - - case 8: - if (!read_u64(&id64, blob, pos, len, SRE_BIG)) - return false; - *id = (jdwp_dynsized_id)id64; - break; - - default: - return false; - break; - - } - - return true; - -} |