Jake Yue Chen

38 papers Misc 8Journal 18Unranked 7
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Jiawei Xu, Qingnan Xie, Meijun Liu, Zhandos Sembay, Swathi Thaker, Pamela Payne-Foster, Jake Yue Chen, Ying Ding
2025 J jnl
CoRR
Jiawei Xu, Zhandos Sembay, Swathi Thaker, Pamela Payne-Foster, Jake Yue Chen, Ying Ding
2023 conf
BCB
Selina Zhang, Jake Yue Chen
2022 J jnl
Bioinform.
Zhenyu Weng, Zongliang Yue, Yuesheng Zhu, Jake Yue Chen
2015 J jnl
Bioinform.
Zongliang Yue, Madhura M. Kshirsagar, Thanh Nguyen, Chayaporn Suphavilai, Michael T. Neylon, Liugen Zhu, Timothy Ratliff, Jake Yue Chen
2015 conf
BIBM
Ni Cao, Sisi Zeng, Feixia Shen, Chuandi Pan, Chengshui Chen, Thanh Nguyen, Jake Yue Chen
2015 ed.
C3S2E
Jake Yue Chen, Mohammed J. Zaki, Tamer Kahveci, Saeed Salem, Mehmet Koyutürk
2014 ch.
Approaches in Integrative Bioinformatics
Fan Zhang, Xiaogang Wu, Jake Yue Chen
2014 J jnl
BMC Bioinform.
Zongliang Yue, Ping Wan, Hui Huang, Zhan Xie, Jake Yue Chen
2013 ed.
BIOKDD
Gaurav Pandey, Huzefa Rangwala, George Karypis, Jake Yue Chen, Mohammed Javeed Zaki
2012 J jnl
Sci. Program.
Mohammad Al Hasan, Jun Huan, Jake Yue Chen, Mohammed J. Zaki
2012 ed.
BIOKDD
Tamer Kahveci, Saeed Salem, Mehmet Koyutürk, Jake Yue Chen, Mohammed J. Zaki
2011 conf
BIBM
Liang-Chin Huang, Jake Yue Chen
2011 ed.
BIOKDD
Mohammed J. Zaki, Jake Yue Chen, Mohammad Al Hasan, Jun Huan
2010 J jnl
IEEE ACM Trans. Comput. Biol. Bioinform.
Stefano Lonardi, Jake Yue Chen
2010 J jnl
Int. J. Data Min. Bioinform.
Jiao Li, Xiaoyan Zhu, Jake Yue Chen
2010 J jnl
Inf. Vis.
Qian You, Shiaofen Fang, Jake Yue Chen
2009 J jnl
PLoS Comput. Biol.
Jiao Li, Xiaoyan Zhu, Jake Yue Chen
2009 Misc conf
SAC
Jiao Li, Pamela Crowell, Jake Yue Chen
2009 J jnl
Briefings Bioinform.
Huajun Chen, Li Ding, Zhaohui Wu, Tong Yu, Lavanya Dhanapalan, Jake Yue Chen
2009 conf
NBiS
Qian You, Shiaofen Fang, Snehasis Mukhopadhyay, Harsha Gopal Goud Vaka, Jake Yue Chen
2008 Misc conf
SAC
Jiao Li, Xiaoyan Zhu, Jake Yue Chen
2008 J jnl
BMC Bioinform.
Tianxiao Huan, Andrey Y. Sivachenko, Scott H. Harrison, Jake Yue Chen
2008 Misc conf
SAC
Harini N. Kasamsetty, Xiaogang Wu, Jake Yue Chen
2007 J jnl
J. Bioinform. Comput. Biol.
Jake Yue Chen, Zhong Yan, Changyu Shen, Dawn P. G. Fitzpatrick, Mu Wang
2007 J jnl
Int. J. Bioinform. Res. Appl.
Lavanya Dhanapalan, Jake Yue Chen
2007 J jnl
Nucleic Acids Res.
Megan Sickmeier, Justin A. Hamilton, Tanguy LeGall, Vladimir Vacic, Marc S. Cortese, Ágnes Tantos, Beáta Szabó, Peter Tompa, Jake Yue Chen, Vladimir N. Uversky, Zoran Obradovic, A. Keith Dunker
2006 Misc conf
SAC
Jake Yue Chen, Sarah L. Pinkerton, Changyu Shen, Mu Wang
2006 Misc conf
Pacific Symposium on Biocomputing
Jake Yue Chen, Changyu Shen, Andrey Y. Sivachenko
2005 Misc conf
SAC
Jake Yue Chen, John V. Carlis, Ning Gao
2005 conf
CSB
Changyu Shen, Lang Li, Jake Yue Chen
2005 J jnl
Nucleic Acids Res.
Susie Stephens, Jake Yue Chen, Marcel G. Davidson, Shiby Thomas, Barry M. Trute
2004 Misc conf
SAC
Warren T. Jones, Mathew J. Palakal, Jake Yue Chen
2004 conf
BIOKDD
Jake Yue Chen, Andrey Y. Sivachenko, Lang Li
2004 J jnl
IEEE Data Eng. Bull.
Susie Stephens, Jake Yue Chen, Shiby Thomas
2003 J jnl
Inf. Syst.
Jake Yue Chen, John V. Carlis
2003 conf
CSB
Jake Yue Chen, Andrey Y. Sivachenko, Russell Bell, Cornelia Kurschner, Irene Ota, Sudhir Sahasrabudhe
2003 Misc conf
SAC
Jake Yue Chen, John V. Carlis
redb/extractors/pe_extractors/pe_sections.py
← Index redb/extractors/pe_extractors/pe_sections.py python
import base64
import hashlib
import inspect
from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import PESection
from datetime import datetime, timezone
from typing import Any


class PESectionExtractor(PEExtractor):

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

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

    def _extract_sections(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        sections = []
        for section in self.pe.sections:
            try:
                name = self.process_binary_string(section.Name)
            except Exception as e:
                name = "UnableToDecode"
                self.log.warning(
                    f'Unable to store section Name "{section.Name}" for {self.hash.sha256}'
                    f" exception {e}"
                )
            sec_sha256 = section.get_hash_sha256()
            sec_md5 = section.get_hash_md5()
            # sec_entropy = "%.2f" % section.get_entropy()
            sec_entropy = section.get_entropy()
            pe_section = PESection(
                _id=hashlib.sha256(
                    name.encode()
                ).hexdigest(),  # usecase 8e035beb02a411f8a9e92d4cf184ad34f52bbd0a81a50c222cdd4706e4e45104, all section have same sha256
                section_name=name,
                section_name_b64=base64.b64encode(
                    section.Name.rstrip(b'\x00')
                ).decode(),  # base64.b64decode(b64) to decode
                section_v_addr=section.VirtualAddress,
                section_v_addr_hex=hex(section.VirtualAddress),
                section_v_size=section.Misc_VirtualSize,
                section_size=section.SizeOfRawData,
                section_pointer_to_raw_data=hex(section.PointerToRawData),
                section_md5=sec_md5,
                section_sha256=sec_sha256,
                section_entropy=sec_entropy,
            )
            sections.append(pe_section)
        return sections

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            sections = self._extract_sections()
            # self.export_to_elastic(sections)  # Let the exporters handle this
            return sections
        except Exception as e:
            self.log.error(f"Error extracting PE sections: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            sections = self.extract()
            if sections is None:
                return None
            
            data = []
            current_time = datetime.now(timezone.utc)
            
            for section in sections:
                data.append([
                    self.sha256,                          # sha256
                    self.md5,                             # md5
                    self.sha1,                            # sha1
                    section.section_name,                 # section_name
                    section.section_name_b64,             # section_name_b64
                    section.section_entropy,              # section_entropy
                    section.section_sha256,               # section_sha256
                    section.section_md5,                  # section_md5
                    section.section_size,                 # section_size
                    section.section_v_addr,               # section_v_addr
                    section.section_v_size,               # section_v_size
                    int(section.section_pointer_to_raw_data, 16),  # section_pointer_to_raw_data - convert from hex
                    current_time                          # analysis_date
                ])
            
            column_names = [
                'sha256', 'md5', 'sha1', 'section_name', 'section_name_b64',
                'section_entropy', 'section_sha256', 'section_md5', 'section_size',
                'section_v_addr', 'section_v_size', 'section_pointer_to_raw_data',
                'analysis_date'
            ]
            
            if not data:
                return None

            column_type_names = [
                'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                'LowCardinality(String)', 'LowCardinality(String)',
                'Float64', 'FixedString(64)', 'FixedString(32)', 'UInt64',
                'UInt64', 'UInt64', 'UInt64',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

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