Onur Dikmen

28 papers A* 1A 1Misc 2Journal 15Unranked 8
YearRankTypeTitle / Venue / Authors
2025 J jnl
Int. J. Data Sci. Anal.
Ece Calikus, Slawomir Nowaczyk, Onur Dikmen
2022 J jnl
Data Min. Knowl. Discov.
Ece Calikus, Slawomir Nowaczyk, Mohamed-Rafik Bouguelia, Onur Dikmen
2021 J jnl
CoRR
Ece Calikus, Slawomir Nowaczyk, Mohamed-Rafik Bouguelia, Onur Dikmen
2020 conf
IoT Streams/ITEM@PKDD/ECML
Lingyun Cheng, Sadhana Sundaresh, Mohamed-Rafik Bouguelia, Onur Dikmen
2020 J jnl
Expert Syst. Appl.
Ece Calikus, Slawomir Nowaczyk, Anita Pinheiro Sant'Anna, Onur Dikmen
2019 A* conf
NeurIPS
Mikko A. Heikkilä, Joonas Jälkö, Onur Dikmen, Antti Honkela
2019 J jnl
CoRR
Mikko A. Heikkilä, Joonas Jälkö, Onur Dikmen, Antti Honkela
2019 J jnl
CoRR
Ece Calikus, Slawomir Nowaczyk, Anita Pinheiro Sant'Anna, Onur Dikmen
2017 A conf
UAI
Joonas Jälkö, Antti Honkela, Onur Dikmen
2016 J jnl
CoRR
Joonas Jälkö, Onur Dikmen, Antti Honkela
2016 J jnl
CoRR
Antti Honkela, Mrinal Das, Onur Dikmen, Samuel Kaski
2015 J jnl
CoRR
Onur Dikmen
2015 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Onur Dikmen, Zhirong Yang, Erkki Oja
2015 J jnl
CoRR
Ehsan Amid, Onur Dikmen, Erkki Oja
2015 Misc conf
ICASSP
Annamaria Mesaros, Toni Heittola, Onur Dikmen, Tuomas Virtanen
2014 J jnl
CoRR
Onur Dikmen, Zhirong Yang, Erkki Oja
2014 conf
SSP
Onur Dikmen, Ali Taylan Cemgil
2013 conf
WASPAA
Onur Dikmen, Annamaria Mesaros
2012 conf
NIPS
Zhirong Yang, Tele Hao, Onur Dikmen, Xi Chen, Erkki Oja
2012 J jnl
IEEE Trans. Signal Process.
Onur Dikmen, Cédric Févotte
2011 Misc conf
ICASSP
Onur Dikmen, Cédric Févotte
2011 conf
NIPS
Onur Dikmen, Cédric Févotte
2010 J jnl
IEEE Trans. Speech Audio Process.
Onur Dikmen, Ali Taylan Cemgil
2009
Onur Dikmen
2009 conf
WASPAA
Onur Dikmen, Ali Taylan Cemgil
2007 conf
ICA
Ali Taylan Cemgil, Onur Dikmen
2007 J jnl
Pattern Recognit. Lett.
Olcay Taner Yildiz, Onur Dikmen
2003 conf
ISCIS
Onur Dikmen, H. Levent Akin, Ethem Alpaydin
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())