Vincent Debusschere

32 papers C 8Journal 10Unranked 14
YearRankTypeTitle / Venue / Authors
2024 J jnl
Math. Comput. Simul.
Candelaria Utrilla, Hossein Dehghani Tafti, Anusha Kumaresan, Jérôme Buire, Vincent Debusschere, Josep Pou, Nouredine Hadjsaid
2024 J jnl
Math. Comput. Simul.
Rémy Rigo-Mariani, Vincent Debusschere
2024 conf
ISGT EUROPE
Ahmed Mohamed, Rémy Rigo-Mariani, Vincent Debusschere, Lionel Pin
2024 J jnl
IEEE Access
Ahmed Mohamed, Rémy Rigo-Mariani, Vincent Debusschere, Lionel Pin
2024 conf
ISGT EUROPE
Ahmed Mohamed, Rémy Rigo-Mariani, Vincent Debusschere, Lionel Pin
2024 conf
ISGT EUROPE
María Victoria Gasca, Remy Rigo-Mariani, Vincent Debusschere, Yousra Sidqi
2023 J jnl
IEEE Trans. Ind. Electron.
Han Deng, Jingyang Fang, Yang Qi, Yi Tang, Vincent Debusschere
2023 J jnl
IEEE Trans. Smart Grid
Muhammad Andy Putratama, Rémy Rigo-Mariani, Alyssa D. Mustika, Vincent Debusschere, Amaury Pachurka, Yvon Bésanger
2023 conf
ISGT EUROPE
María Victoria Gasca, Remy Rigo-Mariani, Vincent Debusschere, Yousra Sidqi, Cédric Clastres
2023 conf
ISGT EUROPE
Corentin Jacquier, Rémy Rigo-Mariani, Vincent Debusschere, Jean-Nicolas Louis, Silvana Mima
2023 conf
ISGT EUROPE
Jane Marchand, Jérôme Buire, Vincent Debusschere, Nabil El Jarrai, Jean Pompée, Nouredine Hadjsaid
2023 J jnl
IEEE Access
Alyssa D. Mustika, Rémy Rigo-Mariani, Vincent Debusschere, Amaury Pachurka
2023 conf
ISGT EUROPE
Ahmed Mohamed, Rémy Rigo-Mariani, Vincent Debusschere, Lionel Pin
2022 conf
ISGT-Europe
Hassan Issa, Vincent Debusschere, Lauric Garbuio, Philippe Lalanda, Nouredine Hadjsaid
2022 conf
ISGT-Europe
Mamadou Goundiam, Vincent Debusschere, Raphaël Caire
2021 J jnl
IEEE Trans. Parallel Distributed Syst.
Thi-Thanh-Quynh Nguyen, Christophe Bobineau, Vincent Debusschere, Quang-Huy Giap, Nouredine Hadjsaid
2020 C conf
IECON
Rémy Rigo-Mariani, Vincent Debusschere, Marie-Cécile Alvarez-Herault
2020 C conf
IECON
Thi-Thanh-Quynh Nguyen, Thi Phuong Thao Tran, Vincent Debusschere, Christophe Bobineau, Rémy Rigo-Mariani
2020 J jnl
IEEE Trans. Smart Grid
Edouard Perroy, Damien Lucas, Vincent Debusschere
2020 C conf
IECON
Audrey Moulichon, Mazen Alamir, Lauric Garbuio, Vincent Debusschere, Mustapha Amine Rahmani, Cédric Boudinet, William Noris, Nouredine Hadjsaid
2019 conf
ISGT Europe
Thi-Thanh-Quynh Nguyen, Vincent Debusschere, Christophe Bobineau, Antoine Labonne, Cédric Boudinet, Quang-Huy Giap, Nouredine Hadjsaid
2019 conf
ISGT Europe
Dhandis R. Jintaka, Kevin M. Banjar-Nahor, Vincent Debusschere, Ngapuli I. Sinisuka
2019 conf
ISIE
Kevin M. Banjar-Nahor, Lauric Garbuio, Vincent Debusschere, Nouredine Hadjsaid, Thi-Thu-Ha Pham, Ngapuli I. Sinisuka
2019 J jnl
Comput. Electr. Eng.
Thi-Thanh-Quynh Nguyen, Vincent Debusschere, Christophe Bobineau, Quang-Huy Giap, Nouredine Hadjsaid
2018 conf
ICIT
Kevin M. Banjar-Nahor, Lauric Garbuio, Vincent Debusschere, Nouredine Hadjsaid, Thi-Thu-Ha Pham, Ngapuli I. Sinisuka
2018 conf
ISGT Europe
Kevin M. Banjar-Nahor, Lauric Garbuio, Vincent Debusschere, Nouredine Hadjsaid, Thi-Thu-Ha Pham, Ngapuli I. Sinisuka
2018 C conf
IDEAS
Thi-Thanh-Quynh Nguyen, Christophe Bobineau, Vincent Debusschere, Quang-Huy Giap, Nouredine Hadjsaid
2016 C conf
IECON
Kaustav Basu, Ahmad Hably, Vincent Debusschere, Seddik Bacha, Geert Jan Driven, Andres A. Ovalle
2015 J jnl
IEEE Trans. Ind. Informatics
Kaustav Basu, Vincent Debusschere, Seddik Bacha, Ujjwal Maulik, Sanghamitra Bandyopadhyay
2015 C conf
IECON
Vanina Pirsan, Vincent Debusschere, Seddik Bacha, Andres A. Ovalle
2013 C conf
IECON
Kaustav Basu, Vincent Debusschere, Seddik Bacha
2012 C conf
IECON
Kaustav Basu, Vincent Debusschere, Seddik Bacha
redb/extractors/decompiler/bninja/similarity/minhashcustom.py
← Index redb/extractors/decompiler/bninja/similarity/minhashcustom.py python
import numpy as np
import mmh3

class MinHashCustom:
    """
    DTO for an actual MinHash
    <minhash>: a binary sequence of packed int8/32 values
    <minhash_int>: the equivalent representation of <minhash> but as list of int8/32
    """

    _HASH_MAX = 0xFFFFFFFF
    _MINHASH_BITS = 32

    def getSignatureEntrySize(self):
        return 1 if self.MINHASH_BITS <= 8 else 4

    def __init__(self, function_addr=None, minhash_bytes=None, minhash_signature=None, minhash_bits=32):
        self.minhash = b""
        self.minhash_int = []
        if minhash_bits:
            self._MINHASH_BITS = minhash_bits
        if minhash_bytes and minhash_signature:
            raise ValueError("Can use only one keyword argument")
        if minhash_bytes:
            if self._MINHASH_BITS <= 8:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint8)
            else:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint32)
            self.setMinHash(minhash_signature)
        elif minhash_signature:
            self.setMinHash(minhash_signature)

        self.shingler_composition = {}
        self.function_addr = function_addr

    def hasMinHash(self):
        return len(self.minhash) > 0

    def getMinHash(self):
        return self.minhash

    def getMinHashInt(self):
        return self.minhash_int

    def setMinHash(self, minhash_signature):
        self.minhash_int = [i % 2 ** self._MINHASH_BITS for i in minhash_signature]
        if self._MINHASH_BITS <= 8:
            self.minhash = np.array(self.minhash_int, dtype=np.uint8).tobytes()
        else:
            self.minhash = np.array(self.minhash_int, dtype=np.uint32).tobytes()

    def getComposition(self):
        return self.shingler_composition

    def scoreAgainst(self, other):
        return self.calculateMinHashScore(self.minhash, other.minhash, minhash_bits=self._MINHASH_BITS)

    @staticmethod
    def getHashMax():
        return MinHashCustom._HASH_MAX

    @staticmethod
    def hashData(data, seed) -> int:
        if isinstance(data, (str, bytes, bytearray)):
            return mmh3.hash(data, seed) & MinHashCustom._HASH_MAX
        elif isinstance(data, (list, tuple)):
            to_hash = "|".join(str(elem) for elem in data)
            return mmh3.hash(to_hash, seed) & MinHashCustom._HASH_MAX
        else:
            raise NotImplementedError(
                f"Type not supported for hashData: {type(data).__name__}"
            )

    @staticmethod
    def calculateMinHashScore(first, second, minhash_bits=32):
        if minhash_bits <= 8:
            first_np = np.frombuffer(first, dtype=np.uint8)
            second_np = np.frombuffer(second, dtype=np.uint8)
        else:
            first_np = np.frombuffer(first, dtype=np.uint32)
            second_np = np.frombuffer(second, dtype=np.uint32)
        return 100.0 * sum(first_np == second_np) / len(first_np)

    @staticmethod
    def calculateMinHashIntScore(first, second):
        score = 0
        num_hashes = len(first)
        if num_hashes:
            for index, part in enumerate(first):
                score += 1 if part == second[index] else 0
            return 100.0 * score / num_hashes
        return 0.0

    @property
    def MINHASH_BITS(self):
        return self._MINHASH_BITS