Kang Hao Cheong

97 papers Journal 97
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Cybern.
Yu Zhang, Yongbao Wu, Shuping Ma, Kang Hao Cheong
2026 J jnl
IEEE Trans. Netw. Sci. Eng.
Jie Zhao, Tao Wen, Kang Hao Cheong
2026 J jnl
IEEE Trans. Netw. Sci. Eng.
Xuzhao Li, Xuchen Li, Shiyu Hu, Zhaorui Zhang, Kang Hao Cheong
2026 J jnl
Soft Comput.
Mehmet Baygin, Ilknur Tuncer, Sengul Dogan, Prabal Datta Barua, Turker Tuncer, Kang Hao Cheong, U. Rajendra Acharya
2026 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jie Zhao, Kang Hao Cheong
2026 J jnl
IEEE Trans. Netw. Sci. Eng.
Kang Hao Cheong
2025 J jnl
Comput. Educ. Artif. Intell.
Le Ying Tan, Shiyu Hu, Darren J. Yeo, Kang Hao Cheong
2025 J jnl
Pattern Recognit.
Jixiang Deng, Guohui Zhou, Yong Deng, Kang Hao Cheong
2025 J jnl
CoRR
Jie Zhao, Kang Hao Cheong, Witold Pedrycz
2025 J jnl
CoRR
Jie Zhao, Tao Wen, Kang Hao Cheong
2025 J jnl
CoRR
Buyuan Zhu, Shiyu Hu, Yiping Ma, Yuanming Zhang, Kang Hao Cheong
2025 J jnl
CoRR
Yiping Ma, Shiyu Hu, Buyuan Zhu, Yipei Wang, Yaxuan Kang, Shiqing Liu, Kang Hao Cheong
2025 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jie Zhao, Kang Hao Cheong
2025 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jia Long, Dengxiu Yu, Kang Hao Cheong, Zhen Wang
2025 J jnl
IEEE Trans. Veh. Technol.
Tao Zhang, Dengxiu Yu, Kang Hao Cheong, Yanjun Liu, Zhen Wang
2025 J jnl
IEEE Trans. Cybern.
Jie Zhao, Kang Hao Cheong, Yaochu Jin
2025 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Litong Fan, Dengxiu Yu, Kang Hao Cheong, Zhen Wang
2025 J jnl
IEEE Trans. Cybern.
Tao Zhang, Dengxiu Yu, Kang Hao Cheong, Yan-Jun Liu, Zhen Wang
2025 J jnl
CoRR
Jie Zhao, Kang Hao Cheong
2025 J jnl
CoRR
Jie Zhao, Kang Hao Cheong
2024 J jnl
Expert Syst. J. Knowl. Eng.
Joel Koh En Wei, Venkatesan Rajinikanth, Jahmunah Vicnesh, The-Hanh Pham, Shu Lih Oh, Chai Hong Yeong, Meena Sankaranarayanan, Aditya P. Kamath, Giliyar Muralidhar Bairy, Prabal Datta Barua, Kang Hao Cheong
2024 J jnl
CoRR
Shiyu Hu, Xuchen Li, Xuzhao Li, Jing Zhang, Yipei Wang, Xin Zhao, Kang Hao Cheong
2024 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Zhen Wang, Haojing Li, Xiaoyue Jin, Dengxiu Yu, Kang Hao Cheong, Xuelong Li
2024 J jnl
Eng. Appl. Artif. Intell.
Qian Kang, Dengxiu Yu, Kang Hao Cheong, Zhen Wang
2024 J jnl
Inf. Sci.
Mingli Lei, Kang Hao Cheong
2024 J jnl
IEEE Access
Chui Ee Chu, Gideon Sian Wee Cheong, Ankit Mishra, Yun Wen, Chen Huei Leo, Darren J. Yeo, Kang Hao Cheong
2024 J jnl
Artif. Intell. Rev.
Qiying Hu, Qianli Zhou, Zhen Li, Yong Deng, Kang Hao Cheong
2024 J jnl
IEEE Trans. Cybern.
Zhen Wang, Xiaoyue Jin, Tao Zhang, Jiahao Li, Dengxiu Yu, Kang Hao Cheong, C. L. Philip Chen
2024 J jnl
Inf. Sci.
Li Zhu, Qianli Zhou, Yong Deng, Kang Hao Cheong
2024 J jnl
IEEE Access
Kang Hao Cheong, Chui Ee Chu, Wei Khim Ng, Darren J. Yeo
2024 J jnl
CoRR
Jiefeng Zhou, Zhen Li, Kang Hao Cheong, Yong Deng
2024 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jie Zhao, Kang Hao Cheong
2024 J jnl
CoRR
Jie Zhao, Kang Hao Cheong, Yaochu Jin
2024 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Hao Xu, Dengxiu Yu, Zhen Wang, Kang Hao Cheong, C. L. Philip Chen
2024 J jnl
Neural Networks
Xiaoyi Guo, Ziyu Zheng, Kang Hao Cheong, Quan Zou, Prayag Tiwari, Yijie Ding
2024 J jnl
CoRR
Yiping Ma, Shiyu Hu, Xuchen Li, Yipei Wang, Shiqing Liu, Kang Hao Cheong
2023 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jie Zhao, Zhen Wang, Jinde Cao, Kang Hao Cheong
2023 J jnl
IEEE Trans. Fuzzy Syst.
Kang Chen, Xuyang Wang, Dengxiu Yu, Kang Hao Cheong, Zhen Wang
2023 J jnl
Appl. Intell.
Chao Wang, Ren-qian Xu, Lei Ma, Jie Zhao, Lu Wang, Nenggang Xie, Kang Hao Cheong
2023 J jnl
Soft Comput.
Mehmet Baygin, Ilknur Tuncer, Sengul Dogan, Prabal Datta Barua, Turker Tuncer, Kang Hao Cheong, U. Rajendra Acharya
2023 J jnl
Inf. Sci.
Can Qiu, Yahui Zhu, Kang Hao Cheong, Dengxiu Yu, C. L. Philip Chen
2023 J jnl
Inf. Sci.
Lipeng Pan, Yong Deng, Kang Hao Cheong
2023 J jnl
Inf. Sci.
Jie Zhao, Kang Hao Cheong
2023 J jnl
IEEE Trans. Cybern.
Tao Wen, Jinde Cao, Kang Hao Cheong
2023 J jnl
J. Comput. Sci.
Chao Wang, Liangliang Ma, Lei Ma, Joel Weijia Lai, Jie Zhao, Lu Wang, Kang Hao Cheong
2023 J jnl
J. Comput. Sci.
Chao Wang, Songjie Li, Miao Shi, Jie Zhao, Tao Wen, U. Rajendra Acharya, Nenggang Xie, Kang Hao Cheong
2023 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Gang Liu, Yong Deng, Kang Hao Cheong
2023 J jnl
IEEE Syst. J.
Tao Zhang, Dengxiu Yu, Kang Hao Cheong, Yin-Ping Zhao, Zhen Wang, C. L. Philip Chen
2023 J jnl
IEEE Trans. Evol. Comput.
Jie Zhao, Kang Hao Cheong
2023 J jnl
J. Digit. Imaging
Taha Müezzinoglu, Nursena Baygin, Ilknur Tuncer, Prabal Datta Barua, Mehmet Baygin, Sengul Dogan, Turker Tuncer, Elizabeth Emma Palmer, Kang Hao Cheong, U. Rajendra Acharya
2023 J jnl
Eng. Appl. Artif. Intell.
Luyuan Chen, Yong Deng, Kang Hao Cheong
2023 J jnl
Expert Syst. Appl.
Lipeng Pan, Yong Deng, Kang Hao Cheong
2023 J jnl
Inf. Sci.
Luyuan Chen, Yong Deng, Kang Hao Cheong
2023 J jnl
Comput. Biol. Medicine
Wanying Jia, Songjie Li, Shao Qian, Meng Wang, Wei Bao, Jie Zhao, Kang Hao Cheong, Nenggang Xie
2023 J jnl
IEEE Access
Kang Hao Cheong, Joel Weijia Lai, Jun Hong Yap, Gideon Sian Wee Cheong, Stephanie Vericca Budiman, Omar Ortiz, Ankit Mishra, Darren J. Yeo
2022 J jnl
Sensors
Mehmet Baygin, Prabal Datta Barua, Sengül Dogan, Türker Tuncer, Sefa Key, U. Rajendra Acharya, Kang Hao Cheong
2022 J jnl
IEEE Access
Joel Weijia Lai, Kang Hao Cheong
2022 J jnl
Eng. Appl. Artif. Intell.
Boxun Liu, Yong Deng, Kang Hao Cheong
2022 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Qiuyan Shang, Hanwen Li, Yong Deng, Kang Hao Cheong
2022 J jnl
IEEE Trans. Fuzzy Syst.
Lipeng Pan, Xiaozhuan Gao, Yong Deng, Kang Hao Cheong
2022 J jnl
IEEE Access
Joel Weijia Lai, Kang Hao Cheong
2022 J jnl
Expert Syst. Appl.
Lipeng Pan, Xiaozhuan Gao, Yong Deng, Kang Hao Cheong
2022 J jnl
Sensors
Ya Hui Teo, Jun Hong Yap, Hui An, Simon Ching Man Yu, Limao Zhang, Jie Chang, Kang Hao Cheong
2022 J jnl
Reliab. Eng. Syst. Saf.
Tao Wen, Qiuya Gao, Yu-Wang Chen, Kang Hao Cheong
2022 J jnl
IEEE Trans. Fuzzy Syst.
Haotian Zhang, Shen Zhong, Yong Deng, Kang Hao Cheong
2022 J jnl
Appl. Intell.
Yangxue Li, Danilo Pelusi, Kang Hao Cheong, Yong Deng
2022 J jnl
J. Comput. Sci.
Yusheng Huang, Dong Chu, Yong Deng, Kang Hao Cheong
2022 J jnl
Inf. Sci.
Jie Zhao, Tao Wen, Hadi Jahanshahi, Kang Hao Cheong
2021 J jnl
Swarm Evol. Comput.
Dong Chu, Wenjian Ma, Zhuocheng Yang, Jingyu Li, Yong Deng, Kang Hao Cheong
2021 J jnl
Sensors
Mahesh Anil Inamdar, U. Raghavendra, Anjan Gudigar, Yashas Chakole, Ajay Hegde, Girish R. Menon, Prabal Datta Barua, Elizabeth Emma Palmer, Kang Hao Cheong, Wai-Yee Chan, Edward J. Ciaccio, U. Rajendra Acharya
2021 J jnl
Inf. Sci.
Ran Tao, Zeyi Liu, Rui Cai, Kang Hao Cheong
2021 J jnl
Int. J. Intell. Syst.
Jixiang Deng, Yong Deng, Kang Hao Cheong
2021 J jnl
IEEE Trans. Evol. Comput.
Lu Wang, Lei Ma, Chao Wang, Nenggang Xie, Jin Ming Koh, Kang Hao Cheong
2021 J jnl
Inf. Sci.
Qiuyan Shang, Yong Deng, Kang Hao Cheong
2021 J jnl
CoRR
Chenhui Qiang, Yong Deng, Kang Hao Cheong
2021 J jnl
Entropy
Prabal Datta Barua, Wai-Yee Chan, Sengül Dogan, Mehmet Baygin, Türker Tuncer, Edward J. Ciaccio, Nazrul Islam, Kang Hao Cheong, Zakia Sultana Shahid, U. Rajendra Acharya
2021 J jnl
Int. J. Intell. Syst.
Dingbin Li, Yong Deng, Kang Hao Cheong
2021 J jnl
Eng. Appl. Artif. Intell.
Luyuan Chen, Yong Deng, Kang Hao Cheong
2021 J jnl
Inf. Sci.
Yangxue Li, Danilo Pelusi, Yong Deng, Kang Hao Cheong
2021 J jnl
Inf. Fusion
Tao Wen, Kang Hao Cheong
2021 J jnl
CoRR
Yusheng Huang, Dong Chu, Joel Weijia Lai, Yong Deng, Kang Hao Cheong
2020 J jnl
Comput. Biol. Medicine
Christopher Kok, V. Jahmunah, Shu Lih Oh, Xujuan Zhou, Raj Gururajan, Xiaohui Tao, Kang Hao Cheong, Rashmi Gururajan, Filippo Molinari, U. Rajendra Acharya
2020 J jnl
CoRR
Qiuyan Shang, Yong Deng, Kang Hao Cheong
2020 J jnl
Inf. Fusion
Joel Weijia Lai, Jie Chang, Lay Kee Ang, Kang Hao Cheong
2020 J jnl
CoRR
Yusheng Huang, Dong Chu, Yong Deng, Kang Hao Cheong
2019 J jnl
IEEE Access
Kang Hao Cheong, Kenneth Jian Wei Tang, Jin Ming Koh, Simon Ching Man Yu, U. Rajendra Acharya, Nenggang Xie
2019 J jnl
Artif. Intell. Medicine
V. Jahmunah, Shu Lih Oh, V. Rajinikanth, Edward J. Ciaccio, Kang Hao Cheong, Arunkumar N., U. Rajendra Acharya
2019 J jnl
CoRR
S. G. Babajanyan, Kang Hao Cheong, Armen E. Allahverdyan
2019 J jnl
IEEE Access
Andrew Fu Wah Ho, Bryan Zhan Yuan Se To, Jin Ming Koh, Kang Hao Cheong
2019 J jnl
IEEE Access
Kang Hao Cheong, Jin Ming Koh, Darren J. Yeo, Zong Xuan Tan, Brenda Oon Eng Boo, Guan Ying Lee
2019 J jnl
CoRR
Ye Ye, Xiao Rong Hang, Jin Ming Koh, Jaroslaw Adam Miszczak, Kang Hao Cheong, Nenggang Xie
2019 J jnl
IEEE Access
Kang Hao Cheong, Sandra Poeschmann, Joel Weijia Lai, Jin Ming Koh, U. Rajendra Acharya, Simon Ching Man Yu, Kenneth Jian Wei Tang
2019 J jnl
IEEE Access
Chao Wang, Jin Ming Koh, Kang Hao Cheong, Nenggang Xie
2018 J jnl
Commun. Nonlinear Sci. Numer. Simul.
Kang Hao Cheong, Zong Xuan Tan, Yan Hao Ling
2018 J jnl
IEEE Access
Kang Hao Cheong, Jin Ming Koh
2017 J jnl
Complex.
Shunqiang Ye, Lu Wang, Kang Hao Cheong, Nenggang Xie
2012 J jnl
Comput. Aided Des.
Herng Yi Cheng, Kang Hao Cheong
tests/unit/conftest.py
← Index tests/unit/conftest.py python
"""
Unit test configuration.

Replaces the redb.extractors package with a minimal stub so that
``from redb.extractors.database_exporters import ...`` works without
pulling in the heavy __init__.py import chain (pefile, elftools,
signify, magic, etc.).

Also stubs out redb.settings so that Elasticsearch / ClickHouse
clients are never actually created during unit tests.

Additionally installs binaryninja stubs for decompiler unit tests.

Stubs heavy third-party packages (pefile, magic, psutil, etc.) so that
redb.workers, redb.queries, redb.ingestor, and redb.s3_utils can all
be imported and patched in unit tests without requiring the real packages.
"""
import sys
import types
from pathlib import Path
from unittest.mock import MagicMock

# ---------------------------------------------------------------------------
# 0. Install binaryninja stubs FIRST — must happen before any decompiler
#    module is imported (triggered by __init__.py chain).
# ---------------------------------------------------------------------------
from tests.unit.conftest_binja_stubs import install_binja_stubs as _install_binja_stubs
_install_binja_stubs()

# ---------------------------------------------------------------------------
# 1. Stub external packages required by database_exporters.py itself,
#    the decompiler chain, and the workers/ingestor modules.
# ---------------------------------------------------------------------------
_heavy_deps = [
    # Database / networking
    "elasticsearch", "clickhouse_connect", "dotenv",
    # Binary analysis — top-level packages
    "pefile", "magic", "machofile",
    # Archive handling
    "py7zr", "pyzipper",
    # File type detection
    "magika",
    # System monitoring
    "psutil",
    # S3 / MinIO (submodule paths needed for `from minio.error import S3Error`)
    "minio", "minio.error",
    # YARA
    "yara_x",
    # Binary parsing — elftools tree
    "elftools", "elftools.elf", "elftools.elf.elffile",
    "elftools.common", "elftools.common.exceptions",
    # Code signing — signify tree
    "signify", "signify.fingerprinter", "signify.authenticode",
    # LIEF
    "lief",
    # Fuzzy hashing
    "ppdeep",
    # .NET analysis
    "dotnetfile",
    # Crypto / ASN.1
    "asn1crypto", "asn1crypto.cms", "asn1crypto.pem", "asn1crypto.x509", "asn1crypto.core",
    # Hashing
    "xxhash", "blake3", "mmh3", "numpy",
    # APK analysis
    "androguard", "androguard.core", "androguard.core.apk",
    "androguard.core.dex", "androguard.core.api_specific_resources",
    "androguard.misc",
    "permhash",
]
for _mod in _heavy_deps:
    if _mod not in sys.modules:
        try:
            __import__(_mod)
        except (ImportError, ModuleNotFoundError):
            sys.modules[_mod] = MagicMock()

# Stub urllib3 with a real Warning subclass (warnings.filterwarnings needs a class)
if "urllib3" not in sys.modules or isinstance(sys.modules.get("urllib3"), MagicMock):
    try:
        import urllib3  # noqa: F401
    except (ImportError, ModuleNotFoundError):
        _urllib3_mod = types.ModuleType("urllib3")
        _urllib3_exc = types.ModuleType("urllib3.exceptions")

        class _InsecureRequestWarning(UserWarning):
            pass

        _urllib3_exc.InsecureRequestWarning = _InsecureRequestWarning
        _urllib3_mod.exceptions = _urllib3_exc
        sys.modules["urllib3"] = _urllib3_mod
        sys.modules["urllib3.exceptions"] = _urllib3_exc

# Provide a functional ppdeep stub (tests call ppdeep.hash() and expect a string).
# Must overwrite the MagicMock that the loop above may have installed.
_ppdeep_existing = sys.modules.get("ppdeep")
if _ppdeep_existing is None or isinstance(_ppdeep_existing, MagicMock):
    _ppdeep_mod = types.ModuleType("ppdeep")
    _ppdeep_mod.__name__ = "ppdeep"

    def _ppdeep_hash(data):
        """Fake ssdeep hash — returns a deterministic placeholder."""
        if isinstance(data, str):
            data = data.encode("utf-8")
        if len(data) < 50:
            return None
        import hashlib
        h = hashlib.md5(data).hexdigest()
        return f"3:{h[:16]}:{h[16:]}"

    _ppdeep_mod.hash = _ppdeep_hash
    sys.modules["ppdeep"] = _ppdeep_mod

# Stub mmh3 if the C extension is not available
_mmh3_existing = sys.modules.get("mmh3")
if _mmh3_existing is None or isinstance(_mmh3_existing, MagicMock):
    _mmh3_mod = types.ModuleType("mmh3")
    _mmh3_mod.__name__ = "mmh3"

    def _mmh3_hash(data, seed=0):
        """Fake MurmurHash3 — deterministic hash using built-in hashlib."""
        import hashlib
        if isinstance(data, str):
            data = data.encode("utf-8")
        seed_bytes = (seed & 0xFFFFFFFF).to_bytes(8, "little")
        h = hashlib.md5(data + seed_bytes).digest()
        return int.from_bytes(h[:4], "little", signed=True)

    _mmh3_mod.hash = _mmh3_hash
    sys.modules["mmh3"] = _mmh3_mod

# Stub tlsh if the C extension is not available
if "tlsh" not in sys.modules:
    try:
        import tlsh as _real_tlsh  # noqa: F401
    except (ImportError, ModuleNotFoundError):
        _tlsh_mock = types.ModuleType("tlsh")
        _tlsh_mock.__name__ = "tlsh"

        def _tlsh_hash(data):
            """Fake TLSH hash — returns a deterministic placeholder.

            Returns empty string for data < 50 bytes or data with very
            low entropy (e.g. repeating patterns), mimicking the real
            TLSH library's "TNULL" behaviour.
            """
            if isinstance(data, str):
                data = data.encode("utf-8")
            if len(data) < 50:
                return ""
            # Real TLSH returns "" for low-entropy input
            if len(set(data)) < 8:
                return ""
            import hashlib
            return "T1" + hashlib.sha256(data).hexdigest()[:70].upper()

        _tlsh_mock.hash = _tlsh_hash
        sys.modules["tlsh"] = _tlsh_mock

# ---------------------------------------------------------------------------
# 2. Stub redb.settings (package) so module-level code never runs
# ---------------------------------------------------------------------------
_settings_mock = MagicMock()
_settings_mock.__name__ = "redb.settings"
sys.modules["redb.settings"] = _settings_mock
sys.modules["redb.settings.elasticsearch"] = MagicMock()
sys.modules["redb.settings.clickhouse"] = MagicMock()

# ---------------------------------------------------------------------------
# 3. Replace redb.extractors with a minimal package that does NOT eagerly
#    import every extractor (and their heavy deps).  Sub-module imports
#    like ``from redb.extractors.database_exporters import ...`` still work
#    because __path__ points to the real package directory.
# ---------------------------------------------------------------------------
_repo_root = Path(__file__).resolve().parents[2]
_extractors_pkg = types.ModuleType("redb.extractors")
_extractors_pkg.__path__ = [str(_repo_root / "redb" / "extractors")]
_extractors_pkg.__package__ = "redb.extractors"
sys.modules["redb.extractors"] = _extractors_pkg

# ---------------------------------------------------------------------------
# 4. Force-import redb submodules so that @patch('redb.workers.xxx'),
#    @patch('redb.queries.xxx'), etc. can resolve at decoration time.
#    This works because all heavy deps are already stubbed above.
# ---------------------------------------------------------------------------
import redb.logging_utils   # noqa: F401, E402
import redb.s3_utils         # noqa: F401, E402
import redb.queries          # noqa: F401, E402
import redb.workers          # noqa: F401, E402
import redb.ingestor         # noqa: F401, E402