Navid Mohajer

44 papers B 14C 1Journal 14Unranked 15
YearRankTypeTitle / Venue / Authors
2025 J jnl
ACM Comput. Surv.
Saeid Nahavandi, Roohallah Alizadehsani, Darius Nahavandi, Shady M. K. Mohamed, Navid Mohajer, Mohammad Rokonuzzaman, Ibrahim Hossain
2025 conf
ITSC
Alireza Hosseinnajad, Navid Mohajer, Mohammad Rokonuzzaman
2025 conf
ANZCC
Jack Gregory, Mohammad Rokonuzzaman, Navid Mohajer, Matthew Watson
2025 conf
ECC
Mohammad Hedayati, Navid Mohajer, Mohammad Rokonuzzaman
2025 conf
AutomotiveUI
Julakha Jahan Jui, Imali T. Hettiarachchi, Navid Mohajer
2025 conf
ANZCC
Mohammad Hedayati, Navid Mohajer, Mohammad Rokonuzzaman, Douglas C. Creighton
2024 conf
ANZCC
Mohammad Rokonuzzaman, Navid Mohajer, Ibrahim Hossain, Douglas C. Creighton
2024 J jnl
J. Intell. Robotic Syst.
Alireza Hosseinnajad, Navid Mohajer, Saeid Nahavandi
2024 J jnl
CoRR
Farhad Nazari, Darius Nahavandi, Navid Mohajer, Abbas Khosravi
2024 J jnl
CoRR
Farhad Nazari, Navid Mohajer, Darius Nahavandi, Abbas Khosravi
2024 conf
ANZCC
Asher Winter, Navid Mohajer, Darius Nahavandi, Matthew Watson
2024 conf
SysCon
Farhad Nazari, Arian Shajari, Darius Nahavandi, Navid Mohajer
2024 J jnl
CoRR
Farhad Nazari, Arian Shajari, Darius Nahavandi, Navid Mohajer
2024 conf
ANZCC
Mohammad Hedayati, Mohammad Rokonuzzaman, Navid Mohajer
2024 conf
ICHMS
Timothy Mark Gregory, Darius Nahavandi, Navid Mohajer
2023 J jnl
IEEE Access
Mohammadali Ghafarian, Matthew Watson, Navid Mohajer, Darius Nahavandi, Parham Mohsenzadeh Kebria, Shady M. K. Mohamed
2023 J jnl
IEEE Trans. Cogn. Dev. Syst.
Farhad Nazari, Navid Mohajer, Darius Nahavandi, Abbas Khosravi, Saeid Nahavandi
2023 B conf
SMC
Jack Gregory, Mohammad Rokonuzzaman, Navid Mohajer, Mohammadali Ghafarian
2023 B conf
SMC
Mohammad Hedayati, Navid Mohajer, Mohammad Rokonuzzaman, Saeid Nahavandi
2022 J jnl
CoRR
Saeid Nahavandi, Roohallah Alizadehsani, Darius Nahavandi, Shady M. K. Mohamed, Navid Mohajer, Mohammad Rokonuzzaman, Ibrahim Hossain
2022 B conf
SMC
Anushri Rajendran, Parham M. Kebria, Navid Mohajer, Abbas Khosravi, Saeid Nahavandi
2022 C conf
HSI
Farhad Nazari, Navid Mohajer, Darius Nahavandi, Abbas Khosravi, Saeid Nahavandi
2022 J jnl
CoRR
Farhad Nazari, Navid Mohajer, Darius Nahavandi, Abbas Khosravi, Saeid Nahavandi
2022 B conf
SMC
Farhad Nazari, Darius Nahavandi, Navid Mohajer, Abbas Khosravi
2022 B conf
SMC
Farhad Nazari, Navid Mohajer, Darius Nahavandi, Abbas Khosravi
2022 B conf
SMC
Navid Mohajer, Asher Winter, Timothy Mark Gregory, Darius Nahavandi, Matthew Watson, Saeid Nahavandi
2022 J jnl
CoRR
Farhad Nazari, Darius Nahavandi, Navid Mohajer, Abbas Khosravi
2022 J jnl
IEEE Trans. Veh. Technol.
Mohammad Rokonuzzaman, Navid Mohajer, Saeid Nahavandi
2021 B conf
SMC
Mohammad Rokonuzzaman, Navid Mohajer, Shady M. K. Mohamed, Saeid Nahavandi
2021 J jnl
CoRR
Farhad Nazari, Navid Mohajer, Darius Nahavandi, Abbas Khosravi, Saeid Nahavandi
2021 J jnl
IEEE Intell. Transp. Syst. Mag.
Navid Mohajer, Saeid Nahavandi, Hamid Abdi, Zoran Najdovski
2021 B conf
SMC
Luke Briese, Timothy Mark Gregory, Navid Mohajer, Matthew Watson, Shady M. K. Mohamed, Saeid Nahavandi
2021 B conf
SMC
Farhad Nazari, Darius Nahavandi, Navid Mohajer, Abbas Khosravi
2021 conf
SSCI
Anushri Rajendran, Parham M. Kebria, Navid Mohajer, Abbas Khosravi, Saeid Nahavandi
2021 J jnl
IEEE Access
Mohammad Rokonuzzaman, Navid Mohajer, Saeid Nahavandi, Shady M. K. Mohamed
2021 B conf
SMC
Asher Winter, Navid Mohajer, Darius Nahavandi
2020 B conf
SMC
Parham M. Kebria, Abbas Khosravi, Ibrahim Hossain, Navid Mohajer, Hussain Mohammed Dipu Kabir, Seyed Mohammad Jafar Jalali, Darius Nahavandi, Syed Moshfeq Salaken, Saeid Nahavandi, Aurelien Lagrandcourt, Navneet Bhasin
2020 conf
SysCon
Navid Mohajer, Mohammad Rokonuzzaman, Darius Nahavandi, Syed Moshfeq Salaken, Zoran Najdovski, Saeid Nahavandi
2020 B conf
SMC
Mohammad Rokonuzzaman, Navid Mohajer, Saeid Nahavandi, Shady M. K. Mohamed
2019 conf
ICCMA
Navid Mohajer, Zoran Najdovski, Saeid Nahavandi
2019 conf
ICCMA
Mohammad Rokonuzzaman, Navid Mohajer, Saeid Nahavandi
2018 B conf
SMC
Navid Mohajer, Houshyar Asadi, Saeid Nahavandi, Chee Peng Lim
2017 conf
ICM
Navid Mohajer, Hamid Abdi, Kyle Nelson, Saeid Nahavandi
2016 B conf
SMC
Gokul Sidarth Thirunavukkarasu, Hamid Abdi, Navid Mohajer
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