Jae-Won Kim

33 papers B 1C 5Misc 1Journal 17Unranked 9
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Heeyoul Kwak, Seong-Joon Park, Hyunwoo Jung, Jeongseok Ha, Jae-Won Kim
2025 J jnl
IEEE Access
Hwanhee Cho, Jae-Won Kim, Min-Sup Song, Chi-Myeong Yun, Gyu-Jung Cho, Zhongbei Tian
2025 J jnl
IEEE Access
Sungbeen Kim, Ga San Jhun, Hyun Jun Yook, Su Yeon Kim, Daeyoung Song, Jae-Won Kim, Dohoon Kim, Youn Kyu Lee
2024 Misc conf
ICASSP
Jae-Won Kim, Byeongho Jo, Seungkwon Beack, Hochong Park
2022 C conf
ICCE
Hak-Hun Choi, Jae-Won Kim, Ho-Nam Lee
2022 J jnl
IEEE Signal Process. Lett.
Jae-Won Kim, Seungkwon Beack, Wootaek Lim, Hochong Park
2021 J jnl
IEEE Trans. Aerosp. Electron. Syst.
Jae-Won Kim, Byungju Lim, Young-Chai Ko
2021 J jnl
IEICE Trans. Inf. Syst.
Jae-Won Kim, Hochong Park
2020 C conf
ICCE
Hak-Hun Choi, Jae-Won Kim, Shigeki Hirohata, Ho-Nam Lee
2017 J jnl
Int. J. Autom. Control.
Jae-Won Kim, Chae-Youn Oh, Jae-Wook Chung, Ki-Ho Kim
2016 J jnl
Multim. Tools Appl.
Suyeol Lee, Jae-Won Kim, Eunyoung Ahn
2015 J jnl
Cyberpsychology Behav. Soc. Netw.
Jae-A. Lim, Ah Reum Gwak, Su Mi Park, Jun-Gun Kwon, Jun-Young Lee, Hee Yeon Jung, Bo Kyung Sohn, Jae-Won Kim, Dai Jin Kim, Jung-Seok Choi
2011 conf
BIODEVICES
Myeong-Hyeok Jeong, Jae-Won Kim, Byung-Hyun Kwak, Young-Bae Park, Byoung-Joon Kim, Young-Chang Joo
2008 J jnl
Cyberpsychology Behav. Soc. Netw.
Soo-Churl Cho, Jae-Won Kim, Boong-Nyun Kim, Jong-Ha Lee, Eun-Hui Kim
2006 conf
ARCS
Jae-Won Kim, Hye-Soo Kim, Jae-Woong Yun, Sung-Jea Ko
2006 C conf
SERA
Jae-Won Kim, O-Hoon Choi, Doo-Kwon Baik
2006 J jnl
IEEE Trans. Consumer Electron.
Jae-Won Kim, Goo-Rak Kwon, Nam-Hyeong Kim, Aldo W. Morales, Sung-Jea Ko
2006 B conf
Networking
Hye-Soo Kim, Sang-Hee Park, Chun-Su Park, Jae-Won Kim, Sung-Jea Ko
2006 J jnl
IEICE Trans. Commun.
Jae-Won Kim, Hyeong-Min Nam, Sang-Ju Lee, Jae Yong Lee, Sung-Jea Ko
2006 C conf
CIT
Goo-Rak Kwon, Sang-Hee Park, Jae-Won Kim, Sung-Jea Ko
2006 J jnl
IEICE Trans. Fundam. Electron. Commun. Comput. Sci.
Jae-Won Kim, Sun-Young Jeon, Hye-Soo Kim, Jae-Woong Yun, Sung-Jea Ko
2006 J jnl
IEICE Trans. Commun.
Jae-Won Kim, Goo-Rak Kwon, June-Sok Lee, Nam-Hyeong Kim, Sung-Jea Ko
2005 J jnl
IEICE Trans. Inf. Syst.
Bok-Nyong Park, Wonjun Lee, Jae-Won Kim
2005 conf
PCM (2)
Jae-Won Kim, Hye-Soo Kim, Jae-Woong Yun, Hyeong-Min Nam, Sung-Jea Ko
2005 conf
IWDC
Jae-Woong Yun, Hye-Soo Kim, Jae-Won Kim, Youn-Seon Jang, Sung-Jea Ko
2004 J jnl
Real Time Imaging
June-Sok Lee, Goo-Rak Kwon, Jae-Won Kim, Nam-Hyeong Kim, Sung-Jea Ko
2004 C conf
PDCAT
Jae-Won Kim, Wonjun Lee, Jihoon Myung, Inkyu Lee
2004 conf
PCM (3)
June-Sok Lee, Goo-Rak Kwon, Jae-Won Kim, Jae Yong Lee, Sung-Jea Ko
2004 conf
AINA (1)
Bok-Nyong Park, Jae-Won Kim, Wonjun Lee
2004 conf
MIPS
June-Sok Lee, Goo-Rak Kwon, Jae-Won Kim, Kyung-Hoon Lee, Sung-Jea Ko
2004 conf
PWC
Sang-Hee Park, Hye-Soo Kim, Chun-Su Park, Jae-Won Kim, Sung-Jea Ko
2003 conf
DAGM-Symposium
Jae-Won Kim, Kang-Sun Choi, Byeong-Doo Choi, Jae Yong Lee, Sung-Jea Ko
2002 J jnl
IEEE Trans. Consumer Electron.
Sang-Hyun Park, Jae-Won Kim, Sung-Jea Ko
tests/unit/test_decompile_arch.py
← Index tests/unit/test_decompile_arch.py python
"""Unit tests for architecture modules:
- bninja/arch/creator.py
- bninja/arch/x86.py
"""
import sys
import pytest

# Install binaryninja stubs before importing arch modules
from tests.unit.conftest_binja_stubs import install_binja_stubs
install_binja_stubs()

from redb.extractors.decompiler.bninja.arch.creator import ArchitectureCreator
from redb.extractors.decompiler.bninja.arch.x86 import Arch_x86


# ============================================================================
# 3a. ArchitectureCreator
# ============================================================================

class TestArchitectureCreator:
    def test_create_x86(self):
        arch = ArchitectureCreator("x86").get()
        assert isinstance(arch, Arch_x86)

    def test_create_x86_case_insensitive(self):
        for name in ["X86", "x86", "X86"]:
            arch = ArchitectureCreator(name).get()
            assert isinstance(arch, Arch_x86)

    def test_unsupported_arch_raises(self):
        with pytest.raises(ValueError, match="Unsupported architecture"):
            ArchitectureCreator("arm").get()


# ============================================================================
# 3b. Arch_x86
# ============================================================================

class TestArch_x86Registers:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_is_register_valid(self):
        assert self.arch.is_register("RAX") is True
        assert self.arch.is_register("eax") is True
        assert self.arch.is_register("XMM0") is True

    def test_is_register_invalid(self):
        assert self.arch.is_register("INVALID_REG") is False

    def test_is_general_purpose_register(self):
        assert self.arch.is_general_purpose_register("RAX") is True
        assert self.arch.is_general_purpose_register("XMM0") is False

    def test_is_stack_register(self):
        assert self.arch.is_stack_register("RSP") is True
        assert self.arch.is_stack_register("RBP") is True
        assert self.arch.is_stack_register("RAX") is False

    def test_is_xmm_register(self):
        assert self.arch.is_xmm_register("XMM0") is True
        assert self.arch.is_xmm_register("RAX") is False


class TestArch_x86OpcodeCategories:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_opcode_categories_populated(self):
        assert len(self.arch.opcode_categories) > 0

    def test_opcode_mov_category(self):
        assert self.arch.opcode_categories["MOV"] == "DATA_MOVEMENT"

    def test_opcode_call_category(self):
        assert self.arch.opcode_categories["CALL"] == "CONTROL_FLOW"

    def test_opcode_add_category(self):
        assert self.arch.opcode_categories["ADD"] == "ARITHMETIC"


class TestArch_x86ControlFlow:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_is_control_flow_instruction_by_mnemonic(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("JMP") is True
        assert self.arch.is_control_flow_instruction_by_mnemonic("MOV") is False

    def test_is_control_flow_instruction_call(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("CALL") is True

    def test_is_control_flow_instruction_ret(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("RET") is True

    def test_is_control_flow_instruction_loop(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("LOOP") is True

    def test_is_control_flow_instruction_empty(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("") is False
        assert self.arch.is_control_flow_instruction_by_mnemonic(None) is False