Chang Liu

55 papers A* 1A 3B 1C 4Misc 1Journal 32Unranked 11
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Netw.
Zhaochen Zhang, Kexin Liu, Peirui Cao, Chang Liu, Yizhi Wang, Vamsi Addanki, Stefan Schmid, Qingyue Wang, Wei Chen, Xiaoliang Wang, Jiaqi Zheng, Wenhao Sun, Tao Wu, Ke Meng, Fei Chen, Weiguang Wang, Bingyang Liu, Wanchun Dou, Guihai Chen, Chen Tian, Hao Yin, Fu Xiao
2026 J jnl
IEEE Trans. Netw.
Peirui Cao, Rui Ning, Guangyu Zhao, Zhaochen Zhang, Chang Liu, Yunzhuo Liu, Rui Li, Chengyuan Huang, Tao Sun, Zhiqiang Li, Guihai Chen, Baochun Li, Chen Tian
2025 J jnl
IEEE Trans. Netw.
Kexin Liu, Chang Liu, Qingyue Wang, Zhiqiang Li, Lu Lu, Xiaoliang Wang, Fu Xiao, Ying Zhang, Wanchun Dou, Guihai Chen, Chen Tian
2025 A conf
ICS
Peirui Cao, Rui Ning, Hongwei Yang, Zhaochen Zhang, Chang Liu, Rui Li, Yongqi Yang, Yunzhuo Liu, Chengyuan Huang, Tao Sun, Xiaodong Duan, Guihai Chen, Chen Tian
2025 Misc conf
NSDI
Kexin Liu, Zhaochen Zhang, Chang Liu, Yizhi Wang, Vamsi Addanki, Stefan Schmid, Qingyue Wang, Wei Chen, Xiaoliang Wang, Jiaqi Zheng, Wenhao Sun, Tao Wu, Ke Meng, Fei Chen, Weiguang Wang, Bingyang Liu, Wanchun Dou, Guihai Chen, Chen Tian
2024 A conf
EuroSys
Songyuan Bai, Hao Zheng, Chen Tian, Xiaoliang Wang, Chang Liu, Xin Jin, Fu Xiao, Qiao Xiang, Wanchun Dou, Guihai Chen
2023 B conf
ICPADS
Chang Liu, Jiaqi Zheng, Wenfei Wu, Bohan Zhao, Wei Nie, Xiaoyu Yi, Guihai Chen
2023 J jnl
IEEE Trans. Parallel Distributed Syst.
Yanqing Chen, Chen Tian, Jiaqing Dong, Song Feng, Xu Zhang, Chang Liu, Peiwen Yu, Nai Xia, Wanchun Dou, Guihai Chen
2022 A* conf
SIGCOMM
Hao Zheng, Chen Tian, Tong Yang, Huiping Lin, Chang Liu, Zhaochen Zhang, Wanchun Dou, Guihai Chen
2021 J jnl
IEEE Trans. Dependable Secur. Comput.
Chang Liu, Liehuang Zhu, Xiangjian He, Jinjun Chen
2019 J jnl
IEEE Trans. Cloud Comput.
Khalid Alhamazani, Rajiv Ranjan, Prem Prakash Jayaraman, Karan Mitra, Chang Liu, Fethi A. Rabhi, Dimitrios Georgakopoulos, Lizhe Wang
2018 J jnl
Secur. Commun. Networks
Xuyun Zhang, Julian Jang-Jaccard, Lianyong Qi, Md. Zakirul Alam Bhuiyan, Chang Liu
2017 J jnl
J. Netw. Comput. Appl.
Chang Liu, Liehuang Zhu, Jinjun Chen
2017 J jnl
IEEE Trans. Sustain. Comput.
Chang Liu, Liehuang Zhu, Jinjun Chen
2017
Chang Liu
2016 J jnl
Concurr. Comput. Pract. Exp.
Chang Liu, Nick Beaugeard, Chi Yang, Xuyun Zhang, Jinjun Chen
2016 J jnl
IEEE Cloud Comput.
Maria Fazio, Antonio Celesti, Rajiv Ranjan, Chang Liu, Lydia Y. Chen, Massimo Villari
2016 J jnl
CoRR
Charith Perera, Chang Liu, Rajiv Ranjan, Lizhe Wang, Albert Y. Zomaya
2016 J jnl
Computer
Charith Perera, Chang Liu, Rajiv Ranjan, Lizhe Wang, Albert Y. Zomaya
2015 ch.
Handbook on Data Centers
Chang Liu, Rajiv Ranjan, Xuyun Zhang, Chi Yang, Jinjun Chen
2015 J jnl
IEEE Trans. Parallel Distributed Syst.
Chi Yang, Chang Liu, Xuyun Zhang, Surya Nepal, Jinjun Chen
2015 J jnl
J. Syst. Softw.
Wenmin Lin, Wan-Chun Dou, Zuojian Zhou, Chang Liu
2015 J jnl
CoRR
Khalid Alhamazani, Rajiv Ranjan, Prem Prakash Jayaraman, Karan Mitra, Chang Liu, Fethi A. Rabhi, Dimitrios Georgakopoulos, Lizhe Wang
2015 conf
TrustCom/BigDataSE/ISPA (1)
Chang Liu, Liehuang Zhu, Jinjun Chen
2015 J jnl
IACR Cryptol. ePrint Arch.
Chang Liu, Liehuang Zhu, Jinjun Chen
2015 J jnl
Future Gener. Comput. Syst.
Chang Liu, Chi Yang, Xuyun Zhang, Jinjun Chen
2015 J jnl
IEEE Trans. Computers
Chang Liu, Rajiv Ranjan, Chi Yang, Xuyun Zhang, Lizhe Wang, Jinjun Chen
2015 J jnl
IEEE Trans. Computers
Xuyun Zhang, Wan-Chun Dou, Jian Pei, Surya Nepal, Chi Yang, Chang Liu, Jinjun Chen
2014 J jnl
IEEE Trans. Parallel Distributed Syst.
Xuyun Zhang, Laurence T. Yang, Chang Liu, Jinjun Chen
2014 J jnl
J. Comput. Syst. Sci.
Xuyun Zhang, Chang Liu, Surya Nepal, Chi Yang, Wanchun Dou, Jinjun Chen
2014 J jnl
J. Comput. Syst. Sci.
Chi Yang, Xuyun Zhang, Changmin Zhong, Chang Liu, Jian Pei, Kotagiri Ramamohanarao, Jinjun Chen
2014 J jnl
IEEE Trans. Parallel Distributed Syst.
Chang Liu, Jinjun Chen, Laurence T. Yang, Xuyun Zhang, Chi Yang, Rajiv Ranjan, Kotagiri Ramamohanarao
2014 J jnl
IACR Cryptol. ePrint Arch.
Chang Liu, Rajiv Ranjan, Chi Yang, Xuyun Zhang, Lizhe Wang, Jinjun Chen
2014 J jnl
Inf. Sci.
Chang Liu, Liehuang Zhu, Mingzhong Wang, Yu-an Tan
2013 conf
CGC
Xuyun Zhang, Chi Yang, Surya Nepal, Chang Liu, Wanchun Dou, Jinjun Chen
2013 J jnl
IEEE Trans. Parallel Distributed Syst.
Xuyun Zhang, Chang Liu, Surya Nepal, Suraj Pandey, Jinjun Chen
2013 conf
CSE
Adrian Johannes, Nazanin Borhan, Chang Liu, Rajiv Ranjan, Jinjun Chen
2013 conf
TrustCom/ISPA/IUCC
Chang Liu, Xuyun Zhang, Chengfei Liu, Yun Yang, Rajiv Ranjan, Dimitrios Georgakopoulos, Jinjun Chen
2013 J jnl
J. Comput. Syst. Sci.
Xuyun Zhang, Chang Liu, Surya Nepal, Jinjun Chen
2013 J jnl
Future Gener. Comput. Syst.
Chang Liu, Xuyun Zhang, Chi Yang, Jinjun Chen
2013 conf
TrustCom/ISPA/IUCC
Xuyun Zhang, Chang Liu, Surya Nepal, Chi Yang, Wanchun Dou, Jinjun Chen
2013 conf
CSE
Chang Liu, Rajiv Ranjan, Xuyun Zhang, Chi Yang, Dimitrios Georgakopoulos, Jinjun Chen
2013 conf
CSE
Chi Yang, Chang Liu, Xuyun Zhang, Surya Nepal, Jinjun Chen
2013 J jnl
Concurr. Comput. Pract. Exp.
Xuyun Zhang, Chang Liu, Surya Nepal, Chi Yang, Wanchun Dou, Jinjun Chen
2013 J jnl
IACR Cryptol. ePrint Arch.
Chang Liu, Liehuang Zhu, Mingzhong Wang, Yu-an Tan
2012 A conf
ICSOC
Gaofeng Zhang, Xuyun Zhang, Yun Yang, Chang Liu, Jinjun Chen
2012 J jnl
IACR Cryptol. ePrint Arch.
Chang Liu, Xuyun Zhang, Chi Yang, Jinjun Chen
2012 conf
ICPCA/SWS
Zhimin Yang, Kaijun Ren, Chang Liu
2012 conf
CGC
Gaofeng Zhang, Yun Yang, Xuyun Zhang, Chang Liu, Jinjun Chen
2012 conf
CGC
Xuyun Zhang, Chang Liu, Surya Nepal, Wanchun Dou, Jinjun Chen
2011 C conf
CSCWD
Chi Yang, Kaijun Ren, Zhimin Yang, Peng Gong, Chang Liu
2011 C conf
DASC
Chang Liu, Xuyun Zhang, Jinjun Chen, Chi Yang
2011 C conf
DASC
Xuyun Zhang, Chang Liu, Jinjun Chen, Wanchun Dou
2011 conf
CCIS
Chang Liu, Liehuang Zhu, Longyijia Li, Yu-an Tan
2010 C conf
CSCWD
Zhimin Yang, Lixiang Qiao, Chang Liu, Chi Yang, Guangming Wan
redb/extractors/basicproperties.py
← Index redb/extractors/basicproperties.py python
from dataclasses import asdict
import inspect
import os
import magic
from magika import Magika
from datetime import datetime, timezone
from typing import Any, List, Tuple

from redb.extractors.enum import Tag
from redb.models.dataclasses import BasicProperties
from redb.extractors.extractor import Extractor


class BasicPropertiesExtractor(Extractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        parent_sha256=None,
        precomputed_hashes=None,
        is_fat=None,
        child_sha256=None,
        child_architecture=None,
        child_filetype=None,
        first_seen=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters=exporters,
            index_prefix=index_prefix,
            elastic_index=elastic_index,
            known_benign=known_benign,
            known_malicious=known_malicious,
            precomputed_hashes=precomputed_hashes,
        )
        self.basic_properties = None
        self.elastic_index = self.index_prefix + "-basic_properties"
        self.is_packed = None
        self.parent_sha256 = parent_sha256  # For FAT Mach-O slices, points to container hash
        self.is_fat = is_fat  # True for FAT Mach-O containers, None otherwise
        self.child_sha256 = child_sha256  # SHA256 hashes of children (FAT slices, zip contents)
        self.child_architecture = child_architecture  # Architecture names for FAT Mach-O slices
        self.child_filetype = child_filetype  # Magika filetypes for children (useful for zip archives)
        self.first_seen = first_seen  # From catalog_samples, None for local files

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

    def _extract_basic_properties(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        filename = None  # Reserved for future use
        sample_name = os.path.basename(self.filepath)
        file_entropy = round(self.calculate_entropy(self.binary), 3)
        type_ = magic.from_buffer(self.binary)
        type_mime = magic.from_buffer(self.binary, mime=True)
        type_magika = Magika().identify_bytes(self.binary).output.label
        size = len(self.binary)
        self.basic_properties = BasicProperties(
            filename, sample_name, size, type_, type_mime, type_magika,
            file_entropy, self.is_packed, self.is_fat, self.child_sha256,
            self.child_architecture, self.child_filetype,
            first_seen=str(self.first_seen) if self.first_seen else None,
        )
        self.log.debug(f"Basic Properties dump: {asdict(self.basic_properties)}")

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            self._extract_basic_properties()
            # self.export_to_elastic([self.basic_properties])
            return self.basic_properties
        except Exception as e:
            self.log.error(f"Extract basic properties error {self.hash.sha256} Exception: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.basic_properties
        elif exporter_type == "ClickHouseExporter":
            data = [[
                self.sha256,
                self.md5,
                self.sha1,
                self.parent_sha256,  # NULL for standalone/FAT, fat_hash for slices
                self.basic_properties.child_sha256 or [],  # SHA256 hashes of children
                self.basic_properties.child_architecture or [],  # Architecture names for FAT slices
                self.basic_properties.child_filetype or [],  # Magika filetypes for children
                self.basic_properties.is_fat,  # True for FAT Mach-O containers, NULL otherwise
                self.basic_properties.filename,
                self.basic_properties.sample_name,
                self.basic_properties.filesize,
                self.basic_properties.file_entropy,
                self.basic_properties.filetype,
                self.basic_properties.filetype_mime,
                self.basic_properties.filetype_magika,
                self.first_seen or datetime(1970, 1, 1, tzinfo=timezone.utc),  # From catalog_samples, epoch zero for local files (uses original datetime, not string)
                datetime.now(timezone.utc)
            ]]

            column_names = [
                'sha256', 'md5', 'sha1', 'parent_sha256', 'child_sha256', 'child_architecture', 'child_filetype',
                'is_fat', 'filename', 'sample_name',
                'filesize', 'file_entropy', 'filetype', 'filetype_mime',
                'filetype_magika', 'first_seen', 'analysis_date'
            ]

            column_type_names = [
                'String', 'String', 'String', 'Nullable(String)',
                'Array(FixedString(64))', 'Array(LowCardinality(String))', 'Array(LowCardinality(String))',
                'Nullable(UInt8)', 'Nullable(String)', 'String',
                'UInt64', 'Float64', 'LowCardinality(String)',
                'LowCardinality(String)', 'LowCardinality(String)',
                'DateTime64(3, \'UTC\')',
                'DateTime64(3, \'UTC\')'
            ]

            return data, column_names, column_type_names

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