Kamil Rocki

26 papers A* 1A 1B 3Misc 1Journal 9Unranked 11
YearRankTypeTitle / Venue / Authors
2021 J jnl
CoRR
Alexander Lavin, Hector Zenil, Brooks Paige, David Krakauer, Justin Gottschlich, Tim Mattson, Anima Anandkumar, Sanjay Choudry, Kamil Rocki, Atilim Günes Baydin, Carina Prunkl, Olexandr Isayev, Erik Peterson, Peter L. McMahon, Jakob H. Macke, Kyle Cranmer, Jiaxin Zhang, Haruko M. Wainwright, Adi Hanuka, Manuela Veloso, Samuel Assefa, Stephan Zheng, Avi Pfeffer
2020 J jnl
CoRR
Kamil Rocki, Dirk Van Essendelft, Ilya Sharapov, Robert Schreiber, Michael Morrison, Vladimir Kibardin, Andrey Portnoy, Jean-Francois Dietiker, Madhava Syamlal, Michael James
2020 A conf
SC
Kamil Rocki, Dirk Van Essendelft, Ilya Sharapov, Robert Schreiber, Michael Morrison, Vladimir Kibardin, Andrey Portnoy, Jean-Francois Dietiker, Madhava Syamlal, Michael James
2018 J jnl
CoRR
T. S. Jayram, Younes Bouhadjar, Ryan L. McAvoy, Tomasz Kornuta, Alexis Asseman, Kamil Rocki, Ahmet S. Ozcan
2017 conf
AUTOMATION
Tomasz Kornuta, Kamil Rocki
2016 J jnl
CoRR
Kamil Rocki
2016 J jnl
CoRR
Kamil Rocki
2016 J jnl
CoRR
Kamil Rocki, Tomasz Kornuta, Tegan Maharaj
2016 J jnl
CoRR
Kamil Rocki
2016 J jnl
CoRR
Tomasz Kornuta, Kamil Rocki
2015 A* conf
AAAI
Mackenzie Leake, Liyu Xia, Kamil Rocki, Wayne Imaino
2015 J jnl
CoRR
Kamil Rocki
2014 Misc conf
SAC
Kamil Rocki, Martin Burtscher, Reiji Suda
2013 conf
IPDPS Workshops
Kamil Rocki, Reiji Suda
2013 conf
IA3@SC
Tian Xiaochen, Kamil Rocki, Reiji Suda
2013 B conf
ICPADS
Kamil Rocki, Martin Burtscher, Reiji Suda
2012 conf
SC Companion
Kamil Rocki, Reiji Suda
2012 B conf
CCGRID
Kamil Rocki, Reiji Suda
2012 conf
HPCS
Kamil Rocki, Reiji Suda
2012 conf
GECCO (Companion)
Kamil Rocki, Reiji Suda
2012 B conf
SPAA
Kamil Rocki, Reiji Suda
2012 conf
SC Companion
Kamil Rocki, Reiji Suda
2011 conf
IPDPS Workshops
Kamil Rocki, Reiji Suda
2011 conf
Australasian Conference on Artificial Intelligence
Kamil Rocki, Reiji Suda
2011 conf
SCAI
Kamil Rocki, Reiji Suda
2009 conf
PPAM (1)
Kamil Rocki, Reiji Suda
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())