Kasun De Zoysa

69 papers A* 1B 12C 2Misc 3Journal 26Unranked 25
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Eranga Bandara, Ross Gore, Sachin Shetty, Sachini Rajapakse, Isurunima Kularathne, Pramoda Karunarathna, Ravi Mukkamala, Peter Foytik, Safdar H. Bouk, Abdul Rahman, Xueping Liang, Amin Hass, Tharaka Hewa, Ng Wee Keong, Kasun De Zoysa, Aruna Withanage, Nilaan Loganathan
2026 J jnl
CoRR
Eranga Bandara, Ross Gore, Sachin Shetty, Ravi Mukkamala, Tharaka Hewa, Abdul Rahman, Xueping Liang, Safdar H. Bouk, Amin Hass, Peter Foytik, Ng Wee Keong, Kasun De Zoysa
2025 J jnl
CoRR
Eranga Bandara, Ross Gore, Peter Foytik, Sachin Shetty, Ravi Mukkamala, Abdul Rahman, Xueping Liang, Safdar H. Bouk, Amin Hass, Sachini Rajapakse, Ng Wee Keong, Kasun De Zoysa, Aruna Withanage, Nilaan Loganathan
2025 J jnl
CoRR
Eranga Bandara, Amin Hass, Ross Gore, Sachin Shetty, Ravi Mukkamala, Safdar H. Bouk, Xueping Liang, Ng Wee Keong, Kasun De Zoysa, Aruna Withanage, Nilaan Loganathan
2025 J jnl
CoRR
Eranga Bandara, Ross Gore, Xueping Liang, Sachini Rajapakse, Isurunima Kularathne, Pramoda Karunarathna, Peter Foytik, Sachin Shetty, Ravi Mukkamala, Abdul Rahman, Amin Hass, Ng Wee Keong, Kasun De Zoysa, Aruna Withanage, Nilaan Loganathan
2025 B conf
IWCMC
Eranga Bandara, Safdar H. Bouk, Sachin Shetty, Ross Gore, Sastry Kompella, Ravi Mukkamala, Abdul Rahman, Peter Foytik, Xueping Liang, Ng Wee Keong, Kasun De Zoysa
2025 J jnl
CoRR
Ruwanga Konara, Kasun De Zoysa, Asanka P. Sayakkara
2025 J jnl
IEEE Access
Lojenaa Navanesan, Kasun De Zoysa, Asanka P. Sayakkara
2025 conf
CCNC
Eranga Bandara, Safdar H. Bouk, Sachin Shetty, Sandip Roy, Ravi Mukkamala, Abdul Rahman, Peter Foytik, Xueping Liang, Ng Wee Keong, Kasun De Zoysa
2025 conf
DFDS
Buddhima Weerasinghe, Asanka P. Sayakkara, Kasun De Zoysa, Mark Scanlon
2025 J jnl
CoRR
Eranga Bandara, Sachin Shetty, Ravi Mukkamala, Ross Gore, Peter Foytik, Safdar H. Bouk, Abdul Rahman, Xueping Liang, Ng Wee Keong, Kasun De Zoysa, Aruna Withanage, Nilaan Loganathan
2025 conf
BCCA
Eranga Bandara, Sachin Shetty, Ravi Mukkamala, Ross Gore, Abdul Rahman, Peter Foytik, Safdar H. Bouk, Xueping Liang, Ng Wee Keong, Kasun De Zoysa
2025 conf
BCCA
Eranga Bandara, Safdar H. Bouk, Sachin Shetty, Ravi Mukkamala, Abdul Rahman, Peter Foytik, Ross Gore, Xueping Liang, Ng Wee Keong, Kasun De Zoysa
2025 J jnl
CoRR
Eranga Bandara, Safdar H. Bouk, Sachin Shetty, Ravi Mukkamala, Abdul Rahman, Peter Foytik, Ross Gore, Xueping Liang, Ng Wee Keong, Kasun De Zoysa
2025 J jnl
CoRR
Eranga Bandara, Ross Gore, Sachin Shetty, Ravi Mukkamala, Christopher K. Rhea, Atmaram Yarlagadda, Shaifali Kaushik, L. H. M. P. De Silva, Andriy Maznychenko, Inna Sokolowska, Amin Hass, Kasun De Zoysa
2025 J jnl
CoRR
Ruwanga Konara, Kasun De Zoysa, Anuradha Mahasinghe, Asanka P. Sayakkara, Nalin Ranasinghe
2025 J jnl
CoRR
Eranga Bandara, Tharaka Hewa, Ross Gore, Sachin Shetty, Ravi Mukkamala, Peter Foytik, Abdul Rahman, Safdar H. Bouk, Xueping Liang, Amin Hass, Sachini Rajapakse, Ng Wee Keong, Kasun De Zoysa, Aruna Withanage, Nilaan Loganathan
2025 B conf
IWCMC
Eranga Bandara, Safdar H. Bouk, Sachin Shetty, Ross Gore, Sastry Kompella, Ravi Mukkamala, Abdul Rahman, Peter Foytik, Xueping Liang, Ng Wee Keong, Kasun De Zoysa
2024 J jnl
J. Univers. Comput. Sci.
Lojenaa Navanesan, Nhien-An Le-Khac, Yossi Oren, Kasun De Zoysa, Asanka P. Sayakkara
2024 J jnl
Forensic Sci. Int. Digit. Investig.
Lojenaa Navanesan, Nhien-An Le-Khac, Mark Scanlon, Kasun De Zoysa, Asanka P. Sayakkara
2024 J jnl
Internet Things
Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Ravi Mukkamala, Abdul Rahman, Nalin Ranasinghe, Kasun De Zoysa, Wee Keong Ng
2024 conf
CCNC
Eranga Bandara, Peter Foytik, Sachin Shetty, Ravi Mukkamala, Abdul Rahman, Xueping Liang, Wee Keong Ng, Kasun De Zoysa
2024 C conf
ISCC
Eranga Bandara, Peter Foytik, Sachin Shetty, Ravi Mukkamala, Abdul Rahman, Xueping Liang, Ng Wee Keong, Kasun De Zoysa
2023 B conf
ICIP
Qianyao Shen, K. T. Y. Mahima, Kasun De Zoysa, Luca Mottola, Thiemo Voigt, Markus Flierl
2023 J jnl
J. Vis. Commun. Image Represent.
Harin Samaranayake, Oshan Mudannayake, Dushani Perera, Prabhash Kumarasinghe, Chathura Suduwella, Kasun De Zoysa, Prasad Wimalaratne
2023 J jnl
CoRR
Lojenaa Navanesan, Nhien-An Le-Khac, Mark Scanlon, Kasun De Zoysa, Asanka P. Sayakkara
2023 J jnl
Int. J. Inf. Sec.
Eranga Bandara, Xueping Liang, Sachin Shetty, Ravi Mukkamala, Peter Foytik, Nalin Ranasinghe, Kasun De Zoysa
2023 conf
iThings/GreenCom/CPSCom/SmartData/Cybermatics
Eranga Bandara, Peter Foytik, Sachin Shetty, Ravi Mukkamala, Abdul Rahman, Xueping Liang, Wee Keong Ng, D. N. Ranasinghe, Kasun De Zoysa
2022 J jnl
CoRR
Wathsara Daluwatta, Ravindu De Silva, Sanduni Kariyawasam, Mohamed Nabeel, Charith Elvitigala, Kasun De Zoysa, Chamath Keppitiyagama
2022 J jnl
J. Bank. Financial Technol.
Eranga Bandara, Sachin Shetty, Ravi Mukkamala, Xueping Liang, Peter Foytik, Nalin Ranasinghe, Kasun De Zoysa
2022 B conf
COLING
Thushari Atapattu, Mahen Herath, Charitha Elvitigala, Piyanjali de Zoysa, Kasun Gunawardana, Menasha Thilakaratne, Kasun De Zoysa, Katrina Falkner
2022 J jnl
CoRR
Thushari Atapattu, Mahen Herath, Charitha Elvitigala, Piyanjali de Zoysa, Kasun Gunawardana, Menasha Thilakaratne, Kasun De Zoysa, Katrina Falkner
2022 conf
ICDM (Workshops)
Udesh Kumarasinghe, Mohamed Nabeel, Kasun De Zoysa, Kasun Gunawardana, Charitha Elvitigala
2022 conf
PervasiveHealth
K. T. Y. Mahima, Malith Weerasekara, Kasun De Zoysa, Chamath Keppitiyagama, Markus Flierl, Luca Mottola, Thiemo Voigt
2022 B conf
EWSN
K. T. Y. Mahima, Malith Weerasekara, Kasun De Zoysa, Chamath Keppitiyagama, Luca Mottola, Thiemo Voigt, Markus Flierl
2022 J jnl
SN Comput. Sci.
Mithsen De Silva, Prabhash Kumarasinghe, Kasun De Zoysa, Chamath Keppitiyagama
2021 B conf
ICCCN
Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Kasun De Zoysa
2021 J jnl
Inf. Process. Manag.
Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Crissie Hall, Daniel Bowden, Nalin Ranasinghe, Kasun De Zoysa
2021 A* conf
CCS
Vinuri Bandara, Thisura Rathnayake, Nipuna Weerasekara, Charitha Elvitigala, Kenneth Thilakarathna, Primal Wijesekera, Kasun De Zoysa, Chamath Keppitiyagama
2021 conf
SAI (2)
Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Nalin Ranasinghe, Kasun De Zoysa, Wee Keong Ng
2021 J jnl
J. Syst. Archit.
Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Nalin Ranasinghe, Kasun De Zoysa
2021 J jnl
Future Gener. Comput. Syst.
Eranga Bandara, Deepak K. Tosh, Peter Foytik, Sachin Shetty, Nalin Ranasinghe, Kasun De Zoysa
2021 J jnl
CoRR
Nimesha Wickramasinghe, Mohamed Nabeel, Kenneth Thilakaratne, Chamath Keppitiyagama, Kasun De Zoysa
2020 conf
ISC2
Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Nalin Ranasinghe, Kasun De Zoysa
2020 conf
MobiHealth
Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Crissie Hall, Daniel Bowden, Nalin Ranasinghe, Kasun De Zoysa, Wee Keong Ng
2020 C conf
ICBC
Eranga Bandara, Xueping Liang, Sachin Shetty, Wee Keong Ng, Peter Foytik, Nalin Ranasinghe, Kasun De Zoysa, Bård Langöy, David Larsson
2020 conf
SSCC
Eranga Bandara, Xueping Liang, Peter Foytik, Sachin Shetty, Nalin Ranasinghe, Kasun De Zoysa, Wee Keong Ng
2019 conf
BlockSys
Eranga Bandara, Wee Keong Ng, Nalin Ranasinghe, Kasun De Zoysa
2018 conf
IEEE BigData
Eranga Bandara, Wee Keong Ng, Kasun De Zoysa, Newton Fernando, Supun Tharaka, P. Maurakirinathan, Namal Jayasuriya
2017 B conf
EWSN
Namal Jayasuriya, Asanka P. Sayakkara, Chathura Suduwella, Chamath Keppitiyagama, Kasun De Zoysa, Kasun Hewage
2017 Misc conf
SenSys
Akarshani Amarasinghe, Chathura Suduwella, Charith Elvitigala, Lasith Niroshan, Rangana Jayashanka Amaraweera, Kasun Gunawardana, Prabash Kumarasinghe, Kasun De Zoysa, Chamath Keppetiyagama
2017 Misc conf
SenSys
Dilushi Piumwardane, Chathura Suduwella, Isuru Dharmadasa, Asanka P. Sayakkara, Prabhash Kumarasinghe, Kasun De Zoysa, Chamath Keppitiyagama
2017 B conf
DCOSS
Asanka Priyadarshana Sayakkara, Namal Jayasuriya, Tharindu Ranathunga, Chathura Suduwella, Nithila Vithanage, Chamath Keppitiyagama, Kasun De Zoysa, Kasun Hewage, Thiemo Voigt
2017 conf
DroNet@MobiSys
Chathura Suduwella, Akarshani Amarasinghe, Lasith Niroshan, Charith Elvitigala, Kasun De Zoysa, Chamath Keppetiyagama
2017 B conf
EWSN
Asanka P. Sayakkara, Namal Jayasuriya, Tharindu Ranathunga, Chathura Suduwella, Nithila Vithanage, Chamath Keppitiyagama, Kasun De Zoysa, Kasun Hewage, Thiemo Voigt
2017 Misc conf
SenSys
Namal Jayasuriya, Tharindu Ranathunga, Kasun Gunawardana, Chamath Silva, Prabash Kumarasinghe, Asanka P. Sayakkara, Chamath Keppitiyagama, Kasun De Zoysa, Kasun Hewage, Thiemo Voigt
2015 conf
DroNet@MobiSys
Mohammed Ayyoob Ahamed Hamza, Chamath Keppitiyagama, Kasun De Zoysa, Venkatraman Iyer, Kasun Hewage, Thiemo Voigt
2015 conf
RealWSN@SenSys
Poshitha Dabare, Chathura Suduwella, Asanka P. Sayakkara, Damitha Sandaruwan, Chamath Keppitiyagama, Kasun De Zoysa, Kasun Hewage, Thiemo Voigt
2015 B conf
SAS
Eranda Tennakoon, Charith Madusanka, Kasun De Zoysa, Chamath Keppitiyagama, Venkat Iyer, Kasun Hewage, Thiemo Voigt
2015 B conf
SAS
Charitha Elvitigala, Eranda Tennakoon, Ayyoob Hamza, Yasith Lokuge, Kasun De Zoysa, Chamath Keppitiyagama, Venkat Iyer, Kasun Hewage, Thiemo Voigt
2015 B conf
MASS
Asanka P. Sayakkara, Chathura Suduwella, Charith Shalitha, Rumesh Hapuarachchi, Chamath Keppitiyagama, Kasun De Zoysa
2012 conf
NESEA
Asanka P. Sayakkara, M. D. J. S. Goonatillake, Kasun De Zoysa
2010 conf
CSEDU (1)
Kenneth Thilakarathna, Chamath Keppitiyagama, Kasun De Zoysa, Henrik Hansson
2010 conf
REALWSN
Tharindu Nanayakkara, Kasun De Zoysa
2010 conf
REALWSN
Asanka P. Sayakkara, W. S. N. Prabath Senanayake, Kasun Hewage, Nayanajith M. Laxaman, Kasun De Zoysa
2010 conf
REALWSN
Nayanajith M. Laxaman, M. D. J. S. Goonatillake, Kasun De Zoysa
2009 conf
CSEDU (1)
Thushari Atapattu, Kasun De Zoysa
2007 conf
NSDR
Kasun De Zoysa, Chamath Keppitiyagama, Gihan P. Seneviratne, W. W. A. T. Shihan
2002 conf
ICPP Workshops
Kasun De Zoysa, Sead Muftic
redb/extractors/macho_extractors/macho_dylibs.py
← Index redb/extractors/macho_extractors/macho_dylibs.py python
import hashlib
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 MachODylib


class MachODylibExtractor(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_dylibs"
        self.log.debug(inspect.currentframe().f_code.co_name)

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

    def _extract_dylibs(self):
        """Extract dynamic library information from all architectures in the MachO binary."""
        self.log.debug(inspect.currentframe().f_code.co_name)
        dylibs = []

        if not self.macho:
            return dylibs

        try:
            # Get architectures using new API (already parsed in base class)
            architectures = self.macho.get_architectures()
            if not architectures:
                return dylibs

            # Process each architecture
            for arch_name in architectures:
                # Get dylib commands using new API with architecture parameter
                dylib_commands = self.macho.get_dylib_commands(arch=arch_name)
                if not dylib_commands:
                    continue

                # Extract dylib commands for this architecture
                for dylib_cmd in dylib_commands:
                    try:
                        dylib_name = dylib_cmd.get('dylib_name', 'Unknown')
                        if isinstance(dylib_name, bytes):
                            dylib_name = dylib_name.decode('utf-8', errors='replace')

                        # Create dylib dataclass with architecture info
                        macho_dylib = MachODylib(
                            dylib_name=dylib_name,
                            dylib_timestamp=dylib_cmd.get('dylib_timestamp', 0),
                            dylib_current_version=dylib_cmd.get('dylib_current_version', 0),
                            dylib_compat_version=dylib_cmd.get('dylib_compat_version', 0),
                        )
                        # Add architecture info to the dylib
                        macho_dylib.architecture = arch_name
                        dylibs.append(macho_dylib)

                    except Exception as e:
                        self.log.warning(
                            f'Unable to process dylib "{dylib_cmd.get("dylib_name", "Unknown")}" for architecture {arch_name} in {self.hash.sha256}: {e}'
                        )
                        continue

            return dylibs

        except Exception as e:
            self.log.error(f"Error extracting MachO dylibs: {e}")
            return dylibs

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            dylibs = self._extract_dylibs()
            return dylibs
        except Exception as e:
            self.log.error(f"Error extracting MachO dylibs: {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 dylib commands for this architecture
                dylib_commands = self.macho.get_dylib_commands(arch=arch_name)
                if not dylib_commands:
                    continue

                # Process each dylib for this architecture
                for dylib_cmd in dylib_commands:
                    try:
                        dylib_name = dylib_cmd.get('dylib_name', 'Unknown')
                        if isinstance(dylib_name, bytes):
                            dylib_name = dylib_name.decode('utf-8', errors='replace')

                        data.append([
                            arch_sha256,                          # sha256 (architecture-specific)
                            dylib_name,                           # dylib_name
                            dylib_cmd.get('dylib_timestamp', 0), # dylib_timestamp
                            dylib_cmd.get('dylib_current_version', 0), # dylib_current_version
                            dylib_cmd.get('dylib_compat_version', 0),  # dylib_compat_version
                            current_time,                         # analysis_date
                        ])
                    except Exception as e:
                        self.log.warning(
                            f'Unable to process dylib "{dylib_cmd.get("dylib_name", "Unknown")}" for architecture {arch_name}: {e}'
                        )
                        continue

            column_names = [
                'sha256',
                'dylib_name', 'dylib_timestamp', 'dylib_current_version',
                'dylib_compat_version', 'analysis_date'
            ]

            if not data:
                return None

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

            return (data, column_names, column_type_names)

        return None

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