Na Helian

55 papers B 4C 4Misc 2Journal 21Unranked 23
YearRankTypeTitle / Venue / Authors
2024 J jnl
J. Adv. Comput. Intell. Intell. Informatics
Efosa Osagie, Wei Ji, Na Helian
2024 conf
ICAISC (1)
Harpreet Singh, Na Helian, Rod Adams, Yi Sun
2024 conf
SGAI Conf. (2)
Say Meng Toh, Na Helian, Kudiwa Pasipamire, Yi Sun, Tony Pasipamire
2023 C conf
CIBCB
Efosa Osagie, Wei Ji, Na Helian
2023 J jnl
Pattern Recognit.
Stiphen Chowdhury, Na Helian, Renato Cordeiro de Amorim
2023 B conf
ESANN
Paul Moggridge, Na Helian, Yi Sun, Mariana Lilley
2022 B conf
EvoApplications
Peter C. R. Lane, Na Helian, Muhammad Haad Bodla, Minghua Zheng, Paul Moggridge
2022 B conf
IJCNN
Harpreet Singh, Na Helian, Rod Adams, Yi Sun
2021 J jnl
SN Comput. Sci.
Ibrahim AlShourbaji, Na Helian, Yi Sun, Mohammed Hameed Alhameed
2020 C conf
EANN
Paul Moggridge, Na Helian, Yi Sun, Mariana Lilley, Vito Veneziano
2019 J jnl
Int. J. Grid Util. Comput.
Paul Moggridge, Na Helian, Yi Sun, Mariana Lilley, Vito Veneziano, Martin Eaves
2018 conf
BIOSIGNALS
Ronakben Bhavsar, Neil Davey, Yi Sun, Na Helian
2018 conf
BICA
Ronakben Bhavsar, Na Helian, Yi Sun, Neil Davey, Tony Steffert, David Mayor
2018 J jnl
IEEE Trans. Emerg. Top. Comput. Intell.
Huankai Chen, Frank Z. Wang, Na Helian
2018 conf
BICA
Ronakben Bhavsar, Neil Davey, Na Helian, Yi Sun, Tony Steffert, David Mayor
2017 C conf
WETICE
Paul Moggridge, Na Helian, Yi Sun, Mariana Lilley, Vito Veneziano, Martin Eaves
2017 conf
BICA
Ronakben Bhavsar, Yi Sun, Na Helian, Neil Davey, David Mayor, Tony Steffert
2016 conf
UIC/ATC/ScalCom/CBDCom/IoP/SmartWorld
Suchismita Hoare, Na Helian, Nathan Baddoo
2016 conf
SCC
Huankai Chen, Frank Wang, Matteo Migliavacca, Leon O. Chua, Na Helian
2015 conf
NVMTS
Frank Zhigang Wang, Leon O. Chua, Na Helian
2014 conf
BigData Congress
Frank Zhigang Wang, Theo Dimitrakos, Na Helian, Sining Wu, Ling Li, Rodric Yates
2014 B conf
TrustCom
Frank Zhigang Wang, Theo Dimitrakos, Na Helian, Sining Wu, Yuhui Deng, Ling Li, Rodric Yates
2014 conf
IEEE MS
Bin Ye, Frank Zhigang Wang, Ling Li, Na Helian, Theo Dimitrakos
2013 J jnl
Neural Networks
Frank Zhigang Wang, Leon O. Chua, Xiao Yang, Na Helian, Ronald Tetzlaff, Torsten Schmidt, Caroline Li, José Manuel García Carrasco, Wanlong Chen, Dominique F. Chu
2010 J jnl
Int. J. Grid High Perform. Comput.
Mian-Guan Lim, Sining Wu, Tomasz Simon, MD Rashid, Na Helian
2010 J jnl
Int. J. Grid High Perform. Comput.
Chenhan Liao, Na Helian, Sining Wu, Mamunur Rashid
2010 J jnl
Int. J. Grid High Perform. Comput.
Yuhui Deng, Na Helian
2009 J jnl
IEEE Trans. Geosci. Remote. Sens.
Frank Zhigang Wang, Na Helian, Sining Wu, Yike Guo, Derek Yuhui Deng, Lingkui Meng, Wen Zhang, Jon Crowcroft, Jean Bacon, Michael Andrew Parker
2009 J jnl
IEEE Trans. Geosci. Remote. Sens.
Frank Zhigang Wang, Na Helian, Sining Wu, Yike Guo, Derek Yuhui Deng, Lingkui Meng, Wen Zhang, Jon Crowcroft, Jean Bacon, Michael Andrew Parker
2008 ch.
Wiley Encyclopedia of Computer Science and Engineering
Frank Zhigang Wang, Sining Wu, Derek Yuhui Deng, Na Helian
2008 J jnl
Parallel Comput.
Yuhui Deng, Frank Wang, Na Helian, Sining Wu, Chenhan Liao
2008 J jnl
Inf. Sci.
Yuhui Deng, Frank Wang, Na Helian
2007 J jnl
J. VLSI Signal Process.
Frank Zhigang Wang, Na Helian, Sining Wu, Yuhui Deng, Vineet R. Khare, Christopher P. Thompson
2007 J jnl
IEEE Trans. Computers
Frank Zhigang Wang, Sining Wu, Na Helian, Michael Andrew Parker, Yike Guo, Yuhui Deng, Vineet R. Khare
2007 J jnl
New Gener. Comput.
Frank Zhigang Wang, Sining Wu, Na Helian, Zhiwei Xu, Yuhui Deng, Vineet R. Khare, Chenhan Liao, Christopher P. Thompson, Michael Parker
2007 J jnl
Comput. Networks
Frank Zhigang Wang, Na Helian, Sining Wu, Yuhui Deng, Vineet R. Khare, Michael Parker
2006 J jnl
Parallel Process. Lett.
Yuhui Deng, Frank Wang, Na Helian, Dan Feng, Ke Zhou
2005 J jnl
IEEE Distributed Syst. Online
Frank Wang, Na Helian, Sining Wu, Yuhui Deng, Ke Zhou, Yike Guo, Steve Thompson, Ian Johnson, Dave Milward, Robert Maddock, Benjamin Khoo Boon Tat
2005 conf
Euro-Par
Frank Wang, Na Helian
2003 conf
ICWI
Na Helian, Kevin Wenjun Yang, Frank Wang
2003 Misc conf
IKE
Frank Wang, Na Helian
2003 C conf
IDEAL
Frank Wang, Farhi Marir, John Gordon, Na Helian
2003 conf
GCC (2)
Frank Wang, Na Helian, Yike Guo, Steve Thompson, John Gordon
2003 conf
BNCOD Posters
Frank Wang, John Gordon, Na Helian
2003 Misc conf
IKE
Frank Wang, Na Helian, John Gordon
2003 conf
ICEIS (1)
Frank Wang, Na Helian
2003 conf
ICEIS (4)
Frank Wang, Na Helian
2003 conf
International Conference on Internet Computing
Na Helian, Frank Wang
2002 conf
ICWI
Frank Wang, Mian-Guan Lim, Na Helian
2002 conf
ECIS
Frank Wang, Ruby Sharma, Na Helian, Farhi Marir, Yau Jim Yip
2002 J jnl
SIGARCH Comput. Archit. News
Frank Wang, Na Helian, Farhi Marir
2002 J jnl
IEEE Trans. Instrum. Meas.
Warwick Clegg, David F. L. Jenkins, Na Helian, James F. C. Windmill, Nick Fry, Ron Atkinson, W. R. Hendren, C. David Wright
2002 conf
ICWI
Frank Wang, Na Helian, Narayana Jayaram
2002 conf
ICWI
Frank Wang, Na Helian, Yau Jim Yip
2002 conf
ICEIS
Frank Wang, Ruby Sharma, Na Helian, Farhi Marir, Yau Jim Yip
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"