Olivier Venard

23 papers A 1B 1C 3Misc 2Journal 3Unranked 13
YearRankTypeTitle / Venue / Authors
2023 J jnl
CoRR
Pierre Larrenie, Jean-François Bercher, Olivier Venard, Iyad Lahsen Cherif
2023 J jnl
CoRR
Pierre Larrenie, Jean-François Bercher, Olivier Venard, Iyad Lahsen Cherif
2022 conf
ICCCNT
Pierre Larrenie, Jean-François Bercher, Olivier Venard, Iyad Lahsen Cherif
2018 J jnl
IEEE Trans. Veh. Technol.
Siqi Wang, Mazen Abi-Hussein, Olivier Venard, Geneviève Baudoin
2017 conf
TSP
Siqi Wang, Mazen Abi-Hussein, Olivier Venard, Geneviève Baudoin
2016 conf
ICECS
Siqi Wang, Mazen Abi-Hussein, Geneviève Baudoin, Olivier Venard, Tomás Gotthans
2014 conf
ICACCI
Namrata Dwivedi, Vivek Ashok Bohara, Mazen Abi-Hussein, Olivier Venard
2014 Misc conf
ICASSP
Mazen Abi-Hussein, Olivier Venard
2013 B conf
WCNC
Bechir Taleb Ali, Geneviève Baudoin, Olivier Venard
2013 conf
NEWCAS
Mazen Abi-Hussein, Olivier Venard, Bruno Feuvrie, Yide Wang
2013 conf
ICECS
Dang-Kièn Germain Pham, Patricia Desgreys, Mazen Abi-Hussein, Patrick Loumeau, Olivier Venard
2013 Misc conf
ICASSP
Mazen Abi-Hussein, Vivek Ashok Bohara, Olivier Venard
2013 conf
EUSIPCO
Boguslaw Szlachetko, Olivier Venard
2012 conf
NEWCAS
Ronald Montesinos, Corinne Berland, Mazen Abi-Hussein, Olivier Venard, Philippe Descamps
2012 conf
ISWCS
Mazen Abi-Hussein, Vivek Ashok Bohara, Olivier Venard
2012 C conf
ISCAS
Ronald Montesinos, Corinne Berland, Mazen Abi-Hussein, Olivier Venard, Philippe Descamps
2012 conf
NEWCAS
Mazen Abi-Hussein, Vivek Ashok Bohara, Olivier Venard
2011 conf
ECCTD
A. Lesellier, O. Jamin, Jean-François Bercher, Olivier Venard
2011 C conf
ISCAS
Mazen Abi-Hussein, Corinne Berland, Olivier Venard
2010 C conf
ISCAS
Corinne Berland, Jean-François Bercher, Olivier Venard
2008 A conf
ASSETS
Olivier Venard, Geneviève Baudoin, Gérard Uzan
2005 conf
UbiMob
Geneviève Baudoin, Olivier Venard, Gérard Uzan, A. Paumier, J. Cesbron
1998 conf
EUSIPCO
Olivier Venard, Denis Prémei
redb/extractors/decompiler/bninja/analysis/strings.py
← Index redb/extractors/decompiler/bninja/analysis/strings.py python
from collections import Counter
import math

class StringAnalysis:
    def __init__(self, bv, functions):
        self.bv = bv
        self.functions = functions

    def entropy(self, s: str) -> float:
        """Compute Shannon entropy of a string."""
        if not s:
            return 0.0
        freq = Counter(s)
        length = len(s)
        return -sum((count / length) * math.log2(count / length) for count in freq.values())

    def analyze(self):
        """
        Extract unique strings from the binary.

        Deduplicates by (string, encoding) within the same binary, keeping the
        first occurrence (lowest offset). Cross-binary deduplication and
        aggregation is handled by ClickHouse materialized views.
        """
        strings = {}

        # Sort strings by their starting address
        sorted_entries = sorted(self.bv.strings, key=lambda e: e.start)

        for entry in sorted_entries:
            # Key is the string and its encoding
            key = (entry.value, entry.type.name)

            # Skip if this string (value + encoding) was already added.
            # Because entries are sorted by address, the first one is always kept.
            if key in strings:
                continue

            # Store only the first occurrence with schema-matching field names
            # entry.length is the raw byte length, len(entry.value) is decoded string length
            string_entry = {
                "string": entry.value,
                "string_raw": entry.raw,
                "string_encoding": entry.type.name,
                "string_offset": entry.start,
                "string_length": len(entry.value),
                "string_raw_length": entry.length,
                "string_entropy": self.entropy(entry.value),
            }

            strings[key] = string_entry

        # Return as list for export compatibility
        return list(strings.values())