Vicky Liu

30 papers B 1C 3Misc 2Journal 12Unranked 12
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Open J. Commun. Soc.
Zhiqiang Xu, Vicky Liu, Luke E. Kane, Matthew McKague, Yuefeng Li
2026 J jnl
EURASIP J. Wirel. Commun. Netw.
Mir Ali Rezazadeh Baee, Leonie Simpson, Luke E. Kane, Vicky Liu, Chadni Islam, Yinhao Jiang, Aufeef Chauhan, Warren Armstrong, Praveen Gauravaram
2025 J jnl
IEEE Open J. Commun. Soc.
Zhiqiang Xu, Luke E. Kane, Vicky Liu, Matthew McKague, Yuefeng Li
2023 J jnl
Sensors
Luke E. Kane, Vicky Liu, Matthew McKague, Geoffrey Walker
2023 J jnl
Nat. Lang. Process. J.
Zhixiang Zeng, Yuefeng Li, Jianming Yong, Xiaohui Tao, Vicky Liu
2023 B conf
PIMRC
Lu Yang, Seyit Camtepe, Yansong Gao, Vicky Liu, Dhammika Jayalath
2022 J jnl
IEEE Access
Luke E. Kane, Vicky Liu, Matthew McKague, Geoffrey R. Walker
2021 J jnl
IEEE Access
Aklilu Daniel Tesfamicael, Vicky Liu, Matthew McKague, William J. Caelli
2020 J jnl
IEEE Access
Aklilu Daniel Tesfamicael, Vicky Liu, Matthew McKague, William J. Caelli, Ernest Foo
2020 J jnl
IEEE Access
Luke E. Kane, Jiaming James Chen, Rebecca Thomas, Vicky Liu, Matthew McKague
2019 conf
ACSW
Jiaming James Chen, Vicky Liu, William J. Caelli
2019 conf
ACSW
Aklilu Daniel Tesfamicael, Vicky Liu, Ernest Foo, Bill Caelli
2018 conf
PACIS
Jiaming James Chen, Jiexuan Edward Chen, Vicky Liu, Laurence D. Fairbairn, Leonie Simpson, Charles Wang, William J. Caelli
2018 Misc conf
SoftCOM
Aklilu Daniel Tesfamicael, Vicky Liu, Ernest Foo, Bill Caelli
2017 C conf
IPCCC
Aklilu Daniel Tesfamicael, Vicky Liu, Ernest Foo, William J. Caelli
2016 J jnl
J. Sens. Actuator Networks
Mahzad Kaviani, Branislav Kusy, Raja Jurdak, Neil Bergmann, Vicky Liu
2015 conf
IFIPTM
Andrew Wong, Vicky Liu, William J. Caelli, Tony Sahama
2015 conf
ENSsys@SenSys
Mahzad Kaviani, Branislav Kusy, Raja Jurdak, Neil Bergmann, Kun Zhao, Vicky Liu
2015 C conf
HealthCom
Vicky Liu, Aklilu Daniel Tesfamicael, William J. Caelli, Tony Sahama
2013 conf
World Conference on Information Security Education
William J. Caelli, Vicky Liu, Dennis Longley
2013 J jnl
Int. J. E Health Medical Commun.
Vicky Liu, William J. Caelli, Yu-Nien Maggie Chen
2012 C conf
Healthcom
Pei Yuan Shen, Vicky Liu, William J. Caelli
2012 J jnl
Int. J. Inf. Secur. Priv.
Pei Yuan Shen, Maolin Tang, Vicky Liu, William J. Caelli
2011 conf
PACIS
Vicky Liu, William J. Caelli, Yingsen Yang, Lauren May
2011 conf
PACIS
Pei Yuan Shen, Vicky Liu, Maolin Tang, William J. Caelli
2009 conf
CSREA EE
Chuan Lang Lin, Hsiu Feng Huang, Vicky Liu
2009 Misc conf
AISC
Vicky Liu, Luis Franco, William J. Caelli, Lauren May, Tony Sahama
2007 conf
ACIS
Vicky Liu, Lauren May, William J. Caelli, Peter R. Croll
2007 conf
MedInfo
Peter R. Croll, Matthew Henricksen, William J. Caelli, Vicky Liu
2004 conf
ACSC
Vicky Liu, William J. Caelli, Ernest Foo, Selwyn Russell
redb/extractors/pe_extractor.py
← Index redb/extractors/pe_extractor.py python
import logging
from abc import ABCMeta, abstractmethod
import inspect

import magic
import pefile
from dotnetfile import DotNetPE

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


@abstractmethod
class PEExtractor(Extractor, metaclass=ABCMeta):

    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
        )
        self.pe = pe if pe else self._generate_pefile_object()
        self.dotnet = None

    def _generate_pefile_object(self):
        pe = None
        try:
            pe = pefile.PE(self.filepath)
            if not pe:
                raise pefile.PEFormatError("Empty file?")
        except pefile.PEFormatError as e:
            self.log.error(f"Format error {self.hash.sha256} Full error : {e}")
        return pe

    def _generate_dotnetfile_object(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        dotnet = None
        error = None
        try:
            dotnet = DotNetPE(self.filepath)
            if not dotnet:
                raise Exception("Empty file?")
        except Exception as e:
            self.log.error(
                f"Format error dotnet file {self.hash.sha256} Full error : {e}"
            )
            error = e
        return dotnet, error

    def _check_dotnet(self):
        try:
            file_type = magic.from_buffer(self.binary)
            if ".Net" in file_type:
                return True
            for entry in self.pe.OPTIONAL_HEADER.DATA_DIRECTORY:
                # IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR is typically 14
                if (
                    entry.name == "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR"
                    and entry.Size > 0
                ):
                    return True
            return False
        except AttributeError as e:
            self.log.error(
                f"AttributeError error dotnet file {self.hash.sha256} Full error : {e}"
            )
            return False

    def _is_signed(self):
        address = self.pe.OPTIONAL_HEADER.DATA_DIRECTORY[
            pefile.DIRECTORY_ENTRY["IMAGE_DIRECTORY_ENTRY_SECURITY"]
        ].VirtualAddress
        if address == 0:
            return False
        return True

    def _has_overlay(self):
        return bool(self.pe.get_overlay())