Jaekwon Lee

46 papers A* 1A 2B 2C 5Journal 27Unranked 8
YearRankTypeTitle / Venue / Authors
2026 J jnl
Empir. Softw. Eng.
Jaekwon Lee, Fabrizio Pastore, Lionel C. Briand
2026 J jnl
Pattern Recognit.
Lu Zhang, Hari Kang, Jaekwon Lee, Deruo Cheng, Donghyun Kim, Kar-Ann Toh
2025 J jnl
CoRR
Jaekwon Lee, Fabrizio Pastore, Lionel C. Briand
2025 J jnl
ACM Trans. Softw. Eng. Methodol.
Kisub Kim, Xin Zhou, Dongsun Kim, Julia Lawall, Kui Liu, Tegawendé F. Bissyandé, Jacques Klein, Jaekwon Lee, David Lo
2025 J jnl
IEEE Internet Things J.
Jaekwon Lee, Kar-Ann Toh
2024 J jnl
CAAI Trans. Intell. Technol.
Jaekwon Lee, Beom-Seok Oh, Kar-Ann Toh
2024 C conf
ISCAS
Jaekwon Lee, Lu Zhang, Donghyun Kim, Kar-Ann Toh
2024 A conf
ICST
Jaekwon Lee, Enrico Viganò, Fabrizio Pastore, Lionel C. Briand
2024 J jnl
CoRR
Jaekwon Lee, Enrico Viganò, Fabrizio Pastore, Lionel C. Briand
2024 J jnl
ACM Trans. Softw. Eng. Methodol.
Jaekwon Lee, Seung Yeob Shin, Lionel C. Briand, Shiva Nejati
2024 C conf
TENCON
Lu Zhang, Jaekwon Lee, Donghyun Kim, Kar-Ann Toh
2023 J jnl
ACM Trans. Softw. Eng. Methodol.
Jaekwon Lee, Seung Yeob Shin, Shiva Nejati, Lionel C. Briand, Yago Isasi Parache
2023 A* conf
ASE
Jaekwon Lee, Enrico Viganò, Oscar Cornejo, Fabrizio Pastore, Lionel C. Briand
2023 J jnl
CoRR
Jaekwon Lee, Enrico Viganò, Oscar Cornejo, Fabrizio Pastore, Lionel C. Briand
2023 J jnl
CoRR
Kisub Kim, Xin Zhou, Dongsun Kim, Julia Lawall, Kui Liu, Tegawendé F. Bissyandé, Jacques Klein, Jaekwon Lee, David Lo
2023 conf
ICEIC
Jaekwon Lee, Jooyoung Kim, Donghyun Kim, Seung Ah Lee, Jong Hwan Sung, Kar-Ann Toh
2023 J jnl
CoRR
Jaekwon Lee, Seung Yeob Shin, Lionel C. Briand, Shiva Nejati
2022 C conf
INDIN
Jaekwon Lee, Jooyoung Kim, Kar-Ann Toh
2022 J jnl
Empir. Softw. Eng.
Jaekwon Lee, Seung Yeob Shin, Shiva Nejati, Lionel C. Briand
2022
Jaekwon Lee
2021 conf
BMSB
Sunhyoung Kwon, Sungjun Ahn, Haechan Kwon, Young-Soo Kim, Jaekwon Lee, Yoo-Sang Shin, Sung Ik Park
2021 J jnl
CoRR
Jaekwon Lee, Seung Yeob Shin, Shiva Nejati, Lionel C. Briand
2020 J jnl
CoRR
Jaekwon Lee, Seung Yeob Shin, Shiva Nejati, Lionel C. Briand, Yago Isasi Parache
2020 J jnl
IEEE Trans. Broadcast.
Jaekwon Lee, Sunhyoung Kwon, Sung-Ik Park, Dong Ku Kim
2019 J jnl
J. Inf. Sci. Eng.
Jaekwon Lee, Dongsun Kim, Woosung Jung
2019 J jnl
IEEE Trans. Broadcast.
Jaekwon Lee, Sungho Jeon, Sung-Ik Park, Dong Ku Kim
2019 conf
BMSB
Sungho Jeon, Sung-Ik Park, Younseok Choi, Yoo-Sang Shin, Jin Sol Nam, Jaekwon Lee, Jahoon Ku, Bo-Mi Lim, Sungjun Ahn, Jae-Young Lee
2019 J jnl
IEEE Trans. Broadcast.
Sung-Ik Park, Jae-Young Lee, Sunhyoung Kwon, Bo-Mi Lim, Sungjun Ahn, Heung Mook Kim, Sungho Jeon, Jaekwon Lee, Michael Simon, Mark Aitken, Kevin Gage, Yiyan Wu, Liang Zhang, Wei Li, Jeongchang Kim
2019 J jnl
IEICE Trans. Commun.
Jaekwon Lee, Sanghwa Lee, Dong Ku Kim
2019 C conf
ICCE
Jaekwon Lee, Dong Ku Kim
2018 conf
BMSB
Sung-Ik Park, Jae-Young Lee, Sunhyoung Kwon, Bo-Mi Lim, Sungjun Ahn, Heung Mook Kim, Sungho Jeon, Jaekwon Lee, Michael Simon, Mark Aitken, Kevin Gage, Yiyan Wu, Liang Zhang, Wei Li, Jeongchang Kim
2018 A conf
ISSTA
Jaekwon Lee, Dongsun Kim, Tegawendé F. Bissyandé, Woosung Jung, Yves Le Traon
2018 conf
BMSB
Sungho Jeon, Jaekwon Lee, Sunhyoung Kwon, Bo-Mi Lim, Sungjun Ahn, Yoo-Sang Shin, Jae-Young Lee, Sung Ik Park
2018 C conf
ICCE
Jaekwon Lee, Dong Ku Kim
2017 J jnl
KSII Trans. Internet Inf. Syst.
Jaekwon Lee, Kisub Kim, Yonghyeon Lee, Jang-Eui Hong, Young-Hoon Seo, Byung-Do Yang, Woosung Jung
2017 J jnl
Sensors
Jaekwon Lee, Seunghwan Moon, Juhun Lim, Min-Joo Gwak, Jae Gwan Kim, Euiheon Chung, Jong-Hyun Lee
2016 conf
CSA/CUTE
Jaekwon Lee, Kisub Kim, Jang-Eui Hong, Woosung Jung
2016 J jnl
IEEE Trans. Broadcast.
Jaekwon Lee, Sungho Jeon, Dong Ku Kim
2013 J jnl
IEEE Trans. Broadcast.
Jaekwon Lee, Sungho Jeon, Junghyun Kim, Young-Woo Suh
2013 conf
ICISA
Jaekwon Lee, Woosung Jung
2013 conf
BIODEVICES
Chang-Ju Park, Jaekwon Lee, Byungphil Mun, Jaeyong An, Seunghwan Moon, Jonghyun Lee
2012 J jnl
IEICE Trans. Commun.
Sungho Jeon, Junghyun Kim, Jaekwon Lee, Young-Woo Suh, Jong-Soo Seo
2011 J jnl
IEEE Trans. Consumer Electron.
Young-Woo Suh, Sung Ik Park, Jaekwon Lee, Ha-Kyun Mok, Jong-Soo Seo
2010 J jnl
IEEE Trans. Consumer Electron.
Young-Woo Suh, Sung Ik Park, Jaekwon Lee, Jin-Yong Choi, Jong-Soo Seo
2009 B conf
PIMRC
Young-Woo Suh, Jaekwon Lee, Jin-Yong Choi, Jong-Soo Seo
2009 B conf
PIMRC
Jaekwon Lee, Young-Woo Suh, Jong-Soo Seo
tests/scripts/test_linking.py
← Index tests/scripts/test_linking.py python
#!/usr/bin/env python3
"""
Test script to verify the linking between decompiled and disassembled functions.
"""

import sys
import os
from pathlib import Path

# Add the redb directory to the path
sys.path.insert(0, str(Path(__file__).parent / "redb"))

from redb.extractors.decompiler.DecompileBinja import DecompileBinja
import logging

def test_linking():
    """Test that decompiled and disassembled functions are properly linked."""
    
    # Setup logging
    logging.basicConfig(level=logging.INFO)
    logger = logging.getLogger("test_linking")
    
    # Use a simple test binary (you'll need to provide a path to a test binary)
    test_binary = "test_files/hello"  # Adjust this path as needed
    
    if not os.path.exists(test_binary):
        print(f"Test binary not found: {test_binary}")
        print("Please provide a valid binary path for testing")
        return False
    
    try:
        # Create and run the extractor
        with DecompileBinja(test_binary, logger) as extractor:
            success = extractor.extract()
            
            if not success:
                print("Extraction failed")
                return False
            
            # Get the analysis results
            results = extractor.analysis_results
            
            if not results:
                print("No analysis results")
                return False
            
            print(f"Analysis completed successfully")
            print(f"Decompiled functions: {len(results['decompiled'])}")
            print(f"Disassembled functions: {len(results['disassembled'])}")
            
            # Test linking
            linking_issues = []
            linked_pairs = 0
            decompiled_only = 0
            disassembled_only = 0
            
            # Check decompiled functions have proper linking
            for decomp_func in results['decompiled']:
                decomp_hash = decomp_func.get('decompiled_function_hash')
                disasm_hash = decomp_func.get('disassembled_function_hash')
                
                if disasm_hash is None:
                    decompiled_only += 1
                    print(f"⚠️  Decompiled function {decomp_func.get('decompiled_function_name')} has no disassembled link (decompiled-only)")
                else:
                    linked_pairs += 1
                    print(f"✓ Decompiled function {decomp_func.get('decompiled_function_name')} linked to disassembled hash: {disasm_hash[:16]}...")
            
            # Check disassembled functions have proper linking
            for disasm_func in results['disassembled']:
                disasm_hash = disasm_func.get('disassembled_function_hash')
                decomp_hash = disasm_func.get('decompiled_function_hash')
                
                if decomp_hash is None:
                    disassembled_only += 1
                    print(f"⚠️  Disassembled function {disasm_func.get('disassembled_function_name')} has no decompiled link (disassembled-only)")
                else:
                    print(f"✓ Disassembled function {disasm_func.get('disassembled_function_name')} linked to decompiled hash: {decomp_hash[:16]}...")
            
            # Verify cross-references are consistent
            decompiled_hashes = {f['decompiled_function_hash']: f for f in results['decompiled']}
            disassembled_hashes = {f['disassembled_function_hash']: f for f in results['disassembled']}
            
            for decomp_func in results['decompiled']:
                decomp_hash = decomp_func.get('decompiled_function_hash')
                disasm_hash = decomp_func.get('disassembled_function_hash')
                
                if disasm_hash and disasm_hash in disassembled_hashes:
                    corresponding_disasm = disassembled_hashes[disasm_hash]
                    if corresponding_disasm.get('decompiled_function_hash') != decomp_hash:
                        linking_issues.append(f"Inconsistent linking: decompiled {decomp_hash[:16]}... -> disassembled {disasm_hash[:16]}... but reverse link doesn't match")
            
            # Summary
            print(f"\n📊 Linking Summary:")
            print(f"  - Linked function pairs: {linked_pairs}")
            print(f"  - Decompiled-only functions: {decompiled_only}")
            print(f"  - Disassembled-only functions: {disassembled_only}")
            print(f"  - Total functions processed: {len(results['decompiled']) + len(results['disassembled'])}")
            
            if linking_issues:
                print(f"\n❌ Linking issues found:")
                for issue in linking_issues:
                    print(f"  - {issue}")
                return False
            else:
                print(f"\n✅ All linking tests passed!")
                print(f"✅ Cross-references are consistent!")
                return True
                
    except Exception as e:
        print(f"Test failed with exception: {e}")
        return False

if __name__ == "__main__":
    success = test_linking()
    sys.exit(0 if success else 1)