Caroline Pantofaru

60 papers A* 11A 6B 1C 1Misc 5Journal 23Unranked 13
YearRankTypeTitle / Venue / Authors
2022 conf
ECCV (7)
Fitsum A. Reda, Janne Kontkanen, Eric Tabellion, Deqing Sun, Caroline Pantofaru, Brian Curless
2022 J jnl
CoRR
Fitsum A. Reda, Janne Kontkanen, Eric Tabellion, Deqing Sun, Caroline Pantofaru, Brian Curless
2022 A* conf
CVPR
Abhijit Kundu, Kyle Genova, Xiaoqi Yin, Alireza Fathi, Caroline Pantofaru, Leonidas J. Guibas, Andrea Tagliasacchi, Frank Dellaert, Thomas A. Funkhouser
2022 J jnl
CoRR
Abhijit Kundu, Kyle Genova, Xiaoqi Yin, Alireza Fathi, Caroline Pantofaru, Leonidas J. Guibas, Andrea Tagliasacchi, Frank Dellaert, Thomas A. Funkhouser
2021 C conf
AIES
Candice Schumann, Susanna Ricco, Utsav Prabhu, Vittorio Ferrari, Caroline Pantofaru
2021 J jnl
CoRR
Candice Schumann, Susanna Ricco, Utsav Prabhu, Vittorio Ferrari, Caroline Pantofaru
2021 conf
3DV
Kyle Genova, Xiaoqi Yin, Abhijit Kundu, Caroline Pantofaru, Forrester Cole, Avneesh Sud, Brian Brewington, Brian Shucker, Thomas A. Funkhouser
2021 J jnl
CoRR
Kyle Genova, Xiaoqi Yin, Abhijit Kundu, Caroline Pantofaru, Forrester Cole, Avneesh Sud, Brian Brewington, Brian Shucker, Thomas A. Funkhouser
2020 conf
ECCV (18)
Rui Huang, Wanyue Zhang, Abhijit Kundu, Caroline Pantofaru, David A. Ross, Thomas A. Funkhouser, Alireza Fathi
2020 J jnl
CoRR
Rui Huang, Wanyue Zhang, Abhijit Kundu, Caroline Pantofaru, David A. Ross, Thomas A. Funkhouser, Alireza Fathi
2020 Misc conf
ICASSP
Joseph Roth, Sourish Chaudhuri, Ondrej Klejch, Radhika Marvin, Andrew C. Gallagher, Liat Kaver, Sharadh Ramaswamy, Arkadiusz Stopczynski, Cordelia Schmid, Zhonghua Xi, Caroline Pantofaru
2020 A* conf
CVPR
Mahyar Najibi, Guangda Lai, Abhijit Kundu, Zhichao Lu, Vivek Rathod, Thomas A. Funkhouser, Caroline Pantofaru, David A. Ross, Larry S. Davis, Alireza Fathi
2020 J jnl
CoRR
Mahyar Najibi, Guangda Lai, Abhijit Kundu, Zhichao Lu, Vivek Rathod, Thomas A. Funkhouser, Caroline Pantofaru, David A. Ross, Larry S. Davis, Alireza Fathi
2020 conf
ECCV (22)
Yue Wang, Alireza Fathi, Abhijit Kundu, David A. Ross, Caroline Pantofaru, Thomas A. Funkhouser, Justin Solomon
2020 J jnl
CoRR
Yue Wang, Alireza Fathi, Abhijit Kundu, David A. Ross, Caroline Pantofaru, Thomas A. Funkhouser, Justin Solomon
2020 conf
ECCV (24)
Abhijit Kundu, Xiaoqi Yin, Alireza Fathi, David A. Ross, Brian Brewington, Thomas A. Funkhouser, Caroline Pantofaru
2020 J jnl
CoRR
Abhijit Kundu, Xiaoqi Yin, Alireza Fathi, David A. Ross, Brian Brewington, Thomas A. Funkhouser, Caroline Pantofaru
2019 J jnl
CoRR
Joseph Roth, Sourish Chaudhuri, Ondrej Klejch, Radhika Marvin, Andrew C. Gallagher, Liat Kaver, Sharadh Ramaswamy, Arkadiusz Stopczynski, Cordelia Schmid, Zhonghua Xi, Caroline Pantofaru
2019 conf
ICCV Workshops
Joseph Roth, Zhonghua Xi, Caroline Pantofaru, Sourish Chaudhuri, Ondrej Klejch, Radhika Marvin, Andrew C. Gallagher, Liat Kaver, Sharadh Ramaswamy, Arkadiusz Stopczynski, Cordelia Schmid
2018 A conf
INTERSPEECH
Sourish Chaudhuri, Joseph Roth, Daniel P. W. Ellis, Andrew C. Gallagher, Liat Kaver, Radhika Marvin, Caroline Pantofaru, Nathan Reale, Loretta Guarino Reid, Kevin W. Wilson, Zhonghua Xi
2018 J jnl
CoRR
Sourish Chaudhuri, Joseph Roth, Daniel P. W. Ellis, Andrew C. Gallagher, Liat Kaver, Radhika Marvin, Caroline Pantofaru, Nathan Reale, Loretta Guarino Reid, Kevin W. Wilson, Zhonghua Xi
2018 A* conf
CVPR
Chunhui Gu, Chen Sun, David A. Ross, Carl Vondrick, Caroline Pantofaru, Yeqing Li, Sudheendra Vijayanarasimhan, George Toderici, Susanna Ricco, Rahul Sukthankar, Cordelia Schmid, Jitendra Malik
2018 Misc conf
ICASSP
Ken Hoover, Sourish Chaudhuri, Caroline Pantofaru, Ian Sturdy, Malcolm Slaney
2017 J jnl
CoRR
Chunhui Gu, Chen Sun, Sudheendra Vijayanarasimhan, Caroline Pantofaru, David A. Ross, George Toderici, Yeqing Li, Susanna Ricco, Rahul Sukthankar, Cordelia Schmid, Jitendra Malik
2017 J jnl
CoRR
Ken Hoover, Sourish Chaudhuri, Caroline Pantofaru, Malcolm Slaney, Ian Sturdy
2016 A* conf
ACM Multimedia
Vinay Bettadapura, Caroline Pantofaru, Irfan A. Essa
2016 J jnl
CoRR
Vinay Bettadapura, Caroline Pantofaru, Irfan A. Essa
2015 A conf
WACV
Vinay Bettadapura, Irfan A. Essa, Caroline Pantofaru
2015 J jnl
CoRR
Vinay Bettadapura, Irfan A. Essa, Caroline Pantofaru
2015 J jnl
Int. J. Comput. Vis.
Wongun Choi, Yu-Wei Chao, Caroline Pantofaru, Silvio Savarese
2015 J jnl
CoRR
Greg Mori, Caroline Pantofaru, Nisarg Kothari, Thomas Leung, George Toderici, Alexander Toshev, Weilong Yang
2014 J jnl
J. Vis. Commun. Image Represent.
Koen Buys, Cedric Cagniart, Anatoly Baksheev, Tinne De Laet, Joris De Schutter, Caroline Pantofaru
2014 conf
ECCV (4)
Wongun Choi, Yu-Wei Chao, Caroline Pantofaru, Silvio Savarese
2014 B conf
RO-MAN
Kerstin Fischer, Bianca Soto, Caroline Pantofaru, Leila Takayama
2014 Misc conf
ICASSP
Julius Kammerl, Neil Birkbeck, Sasi Inguva, Damien Kelly, Andrew J. Crawford, Hugh Denman, Anil C. Kokaram, Caroline Pantofaru
2013 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Wongun Choi, Caroline Pantofaru, Silvio Savarese
2013 conf
ICIAP (2)
Yu-Wei Chao, Wongun Choi, Caroline Pantofaru, Silvio Savarese
2013 Misc conf
IDC
Caroline Pantofaru, Austin Hendrix, Andreas Paepcke, Dirk Thomas, Sharon Marzouk, Sarah Elliott
2013 J jnl
IEEE Robotics Autom. Mag.
Tiffany L. Chen, Matei T. Ciocarlie, Steve B. Cousins, Phillip M. Grice, Kelsey P. Hawkins, Kaijen Hsiao, Charles C. Kemp, Chih-Hung King, Daniel A. Lazewatsky, Adam Leeper, Hai Nguyen, Andreas Paepcke, Caroline Pantofaru, William D. Smart, Leila Takayama
2013 J jnl
Auton. Robots
Caroline Pantofaru, Sachin Chitta, Brian P. Gerkey, Radu Bogdan Rusu, William D. Smart, Richard T. Vaughan
2013 A* conf
CVPR
Wongun Choi, Yu-Wei Chao, Caroline Pantofaru, Silvio Savarese
2012 A* conf
HRI
Caroline Pantofaru, Leila Takayama, Tully Foote, Bianca Soto
2012 Misc conf
UbiComp
Leila Takayama, Caroline Pantofaru, David Robson, Bianca Soto, Michael Barry
2012 conf
AAAI Spring Symposium: Wisdom of the Crowd
Caroline Pantofaru, Sonia Chernova, Alexander Sorokin
2012 J jnl
AI Mag.
Harith Alani, Bo An, Manish Jain, Takashi Kido, George Dimitri Konidaris, William F. Lawless, David L. Martin, Caroline Pantofaru, Donald A. Sofge, Keiki Takadama, Milind Tambe, Tomas Vitvar
2012 A conf
IROS
Tiffany L. Chen, Matei T. Ciocarlie, Steve B. Cousins, Phillip M. Grice, Kelsey P. Hawkins, Kaijen Hsiao, Charles C. Kemp, Chih-Hung King, Daniel A. Lazewatsky, Adam Leeper, Hai Nguyen, Andreas Paepcke, Caroline Pantofaru, William D. Smart, Leila Takayama
2011 J jnl
IEEE Robotics Autom. Mag.
Matei T. Ciocarlie, Caroline Pantofaru, Kaijen Hsiao, Gary R. Bradski, Peter Brook, Ethan Dreyfuss
2011 conf
ICCV Workshops
Wongun Choi, Caroline Pantofaru, Silvio Savarese
2011 A* conf
ICRA
Jonathan Bohren, Radu Bogdan Rusu, Edward Gil Jones, Eitan Marder-Eppstein, Caroline Pantofaru, Melonee Wise, Lorenz Mösenlechner, Wim Meeussen, Stefan Holzer
2011 A* conf
HRI
Caroline Pantofaru
2011 A* conf
HRI
Walker Burgin, Caroline Pantofaru, William D. Smart
2010 A* conf
HRI
Ian J. Goodfellow, Nate Koenig, Marius Muja, Caroline Pantofaru, Alexander Sorokin, Leila Takayama
2009 A conf
IROS
Leila Takayama, Caroline Pantofaru
2008 conf
ECCV (3)
Caroline Pantofaru, Cordelia Schmid, Martial Hebert
2007 A conf
BMVC
Caroline Pantofaru, Martial Hebert
2007 A* conf
CVPR
Liu Yang, Rong Jin, Caroline Pantofaru, Rahul Sukthankar
2007 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Ranjith Unnikrishnan, Caroline Pantofaru, Martial Hebert
2006 conf
CVPR Workshops
Caroline Pantofaru, Gyuri Dorkó, Cordelia Schmid, Martial Hebert
2005 conf
CVPR Workshops
Ranjith Unnikrishnan, Caroline Pantofaru, Martial Hebert
2003 A conf
IROS
Caroline Pantofaru, Ranjith Unnikrishnan, Martial Hebert
redb/extractors/macho_extractors/macho_exports.py
← Index redb/extractors/macho_extractors/macho_exports.py python
import inspect
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.macho_extractor import MachOExtractor
from redb.models.dataclasses import MachOExport


class MachOExportExtractor(MachOExtractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        macho=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            macho,
        )
        self.elastic_index = self.index_prefix + "-macho_exports"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.MACHO_EXPORT.value

    def _extract_exports(self, arch_name=None):
        """Extract export information from the MachO binary for a specific architecture."""
        self.log.debug(inspect.currentframe().f_code.co_name)

        if not self.macho:
            return None

        try:
            # Get exported symbols using new API for specific architecture
            exported_symbols = self.macho.get_exported_symbols(arch=arch_name)

            # Extract all exported symbols (may be empty for some binaries)
            # Handle None or empty dict
            if not exported_symbols:
                exported_symbols = {}
            all_symbols = []
            for dylib_name, symbols in exported_symbols.items():
                # Process symbol names
                for symbol in symbols:
                    if isinstance(symbol, bytes):
                        symbol = symbol.decode('utf-8', errors='replace')
                    all_symbols.append(symbol)

            # Create export dataclass
            macho_export = MachOExport(
                macho_exports_total=len(all_symbols),
                macho_export_symbols=all_symbols  # Empty list is fine, but None is not allowed for Array type
            )

            return macho_export

        except Exception as e:
            self.log.error(f"Error extracting MachO exports for arch {arch_name}: {e}")
            return None

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            # Get architectures (macho is already parsed in base class)
            architectures = self.macho.get_architectures()
            if len(architectures) > 1:
                # FAT binary - return list of exports for each architecture
                results = []
                for arch_name in architectures:
                    exports = self._extract_exports(arch_name)
                    if exports:
                        exports.arch_identifier = arch_name
                        results.append(exports)
                return results
            else:
                # Single architecture - return single result
                return self._extract_exports(architectures[0] if architectures else None)
        except Exception as e:
            self.log.error(f"Error extracting MachO exports: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            if not self.macho:
                return None

            # Get architectures (macho is already parsed in base class)
            try:
                architectures = self.macho.get_architectures()
                is_fat = len(architectures) > 1
            except Exception as e:
                self.log.error(f"Could not get architectures: {e}")
                return None

            data = []
            current_time = datetime.now(timezone.utc)

            # Loop through each architecture (1 for single, multiple for FAT)
            for arch_name in architectures:
                # Get architecture-specific sha256
                try:
                    arch_general_info = self.macho.get_general_info(arch=arch_name)
                    arch_header_raw = self.macho.get_macho_header(arch=arch_name)
                    arch_sha256 = arch_general_info.get('SHA256', self.sha256)
                    arch_cputype_raw = arch_header_raw.get('cputype', 0) if arch_header_raw else 0
                except Exception as e:
                    self.log.warning(f"Could not get arch-specific data for {arch_name}: {e}")
                    arch_sha256 = self.sha256
                    arch_cputype_raw = 0

                # Get exports for this architecture
                macho_export = self._extract_exports(arch_name)
                if not macho_export:
                    continue

                data.append([
                    arch_sha256,                          # sha256 (arch-specific)
                    macho_export.macho_exports_total,     # macho_exports_total
                    macho_export.macho_export_symbols,    # macho_export_symbols (keep as array!)
                    current_time,                         # analysis_date
                ])

            column_names = [
                'sha256',
                'macho_exports_total', 'macho_export_symbols',
                'analysis_date'
            ]

            if not data:
                return None

            column_type_names = [
                'FixedString(64)',
                'UInt32', 'Array(Nullable(String))',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

        return None

    def get_clickhouse_table(self) -> str:
        return "redb_macho_exports"