Nam-Young Kim

22 papers C 1Journal 20Unranked 1
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Access
Kihoon Kwon, Sangwon Kim, Minseo Park, Jinhyuk Ahn, Gahyeon Lee, Joonho Gil, Chulhyun Park, Yunseong Eo, Hyungkyu Choi, Chulho Kang, Eun Seong Kim, Nam-Young Kim, Ramesh Harjani, Taehyoun Oh
2024 J jnl
IEEE Access
Kyoung-Ub Cho, Joonho Gil, Chulhyun Park, Kyu-Jin Cho, Jae-Woo Shin, Eun Seong Kim, Yun Seong Eo, Ramesh Harjani, Nam-Young Kim, Taehyoun Oh
2023 J jnl
IEEE Access
IkHwan Kim, Won Il Jang, Hyeon-Sik Hwang, Byeong-Jae Seo, Dong-Min Lee, Ji-Ho Han, Jae-Woo Shin, Young-Ro Yoon, Taehyoun Oh, Hyung-Chul Park, Eun Seong Kim, Yun Seong Eo, Nam-Young Kim
2023 J jnl
IEEE Access
IkHwan Kim, Dong-Min Lee, Min-Hyuk Cho, Yun-Joo Lee, Ji-Ho Han, Jae-Woo Shin, Hak-Yong Lee, Eun Seong Kim, Nam-Young Kim
2023 J jnl
IEEE Trans. Instrum. Meas.
Jia-Kang Wu, Wei Yue, Ke Gao, Svetlana von Gratowski, Xiao-Feng Gu, Lijia Pan, Nam-Young Kim, Jun-Ge Liang
2022 J jnl
IEEE Access
IkHwan Kim, Dong-Min Lee, Yun-Joo Lee, Jae-Woo Shin, Eun Seong Kim, Hakyoung Lee, Nam-Young Kim
2022 J jnl
Sensors
Myung-Yeon Cho, Ik-Soo Kim, Min-Ji Kim, Da-Eun Hyun, Sang-Mo Koo, Hiesang Sohn, Nam-Young Kim, Sunghoon Kim, Seunghoon Ko, Jongmin Oh
2021 J jnl
IEEE Access
Eun Seong Kim, Ganbold Enkhzaya, Hyeon-Sik Hwang, Ji-Ho Han, Chang-Sik Kim, Jae-Woo Shin, Young-Ro Yoon, Nam-Young Kim
2020 J jnl
Sensors
Alok Kumar, Cong Wang, Fanyi Meng, Zhongliang Zhou, Meng Zhao, Guo-Feng Yan, Eun Seong Kim, Nam-Young Kim
2019 J jnl
IEEE Access
Zhi-Ji Wang, Eun Seong Kim, Jun-Ge Liang, Nam-Young Kim
2018 J jnl
IEEE Access
Gyan Raj Koirala, Eun Seong Kim, Nam-Young Kim
2018 conf
IEEE SENSORS
Alok Kumar, Cong Wang, Fan-Yi Meng, Tian Qiang, Jun-Ge Liang, Jongmin Oh, Nam-Young Kim
2018 J jnl
Sensors
Gyan Raj Koirala, Rajendra Dhakal, Eun Seong Kim, Zhao Yao, Nam-Young Kim
2017 J jnl
Sensors
Mingqing Liu, Cong Wang, Nam-Young Kim
2016 J jnl
Micromachines
Kishor Kumar Adhikari, Eun Seong Kim, Nam-Young Kim
2015 J jnl
Microelectron. J.
Yang Li, Cong Wang, Nam-Young Kim
2015 J jnl
IEICE Electron. Express
Mingqing Liu, Cong Wang, Nam-Young Kim
2015 J jnl
Microelectron. J.
Yang Li, Cong Wang, Zhao Yao, Nam-Young Kim
2013 J jnl
IEICE Electron. Express
Hamhee Jeon, Nam-Young Kim
2012 J jnl
Microelectron. J.
Cong Wang, Nam-Young Kim
2012 C conf
APCC
Ram Krishna Maharjan, Nam-Young Kim
2012 J jnl
J. Media Psychol. Theor. Methods Appl.
Nam-Young Kim, S. Shyam Sundar
redb/extractors/apk_extractor.py
← Index redb/extractors/apk_extractor.py python
import logging
import zipfile
from abc import ABCMeta, abstractmethod

from redb.extractors.extractor import Extractor

logger = logging.getLogger(__name__)


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

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        known_benign=False,
        known_malicious=False,
        apk=None,
    ):
        # Read binary data before calling super().__init__ so that the
        # binary property override is available during hash computation.
        with open(filepath, "rb") as f:
            self._binary_data = f.read()

        self.apk = apk if apk else self._generate_apk_object(filepath)

        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            known_benign=known_benign,
            known_malicious=known_malicious,
        )

    @property
    def binary(self):
        """Override to use already-read binary data."""
        return self._binary_data

    def _generate_apk_object(self, filepath):
        """Parse APK using androguard."""
        apk = None
        try:
            # Suppress verbose androguard loguru DEBUG/INFO output
            from loguru import logger as loguru_logger
            loguru_logger.disable("androguard")
            from androguard.core.apk import APK
            apk = APK(filepath)
            if not apk.is_valid_APK():
                logger.warning(
                    f"APK validation warning for {filepath}"
                )
                # Still return the object — partial parsing may still work
        except Exception as e:
            logger.error(
                f"Format error parsing APK {filepath}: {e}"
            )
        return apk

    def _is_valid_apk(self):
        """Check if the APK object was parsed successfully."""
        return self.apk is not None

    def _get_zip_file(self):
        """Get a zipfile.ZipFile handle for direct archive inspection."""
        try:
            return zipfile.ZipFile(self.filepath, 'r')
        except (zipfile.BadZipFile, Exception) as e:
            self.log.error(f"Failed to open APK as ZIP: {e}")
            return None

    def _list_files(self):
        """List all files in the APK archive."""
        if not self._is_valid_apk():
            return []
        try:
            return self.apk.get_files()
        except Exception as e:
            self.log.error(f"Error listing APK files: {e}")
            return []