Xiaodong Lee

39 papers B 6C 2Journal 18Unranked 13
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Jiuqi Wei, Xiaodong Lee, Botao Peng, Quanqing Xu, Chuanhui Yang, Themis Palpanas
2026 J jnl
Inf. Softw. Technol.
Zhixian Zhuang, Xiaodong Lee, Aiyao Zhang, Jiuqi Wei, Yufan Fu, Botao Peng
2025 B conf
TrustCom
Zhaojun Dai, Xiaodong Lee, Yufan Fu, Botao Peng
2025 J jnl
World Wide Web (WWW)
Jiuqi Wei, Xiaodong Lee, Yufan Fu, Ying Li, Botao Peng
2025 B conf
TrustCom
Aiyao Zhang, Xiaodong Lee, Zhixian Zhuang, Jiuqi Wei, Yufan Fu, Botao Peng
2025 J jnl
CoRR
Aiyao Zhang, Xiaodong Lee, Zhixian Zhuang, Jiuqi Wei, Yufan Fu, Botao Peng
2025 J jnl
Proc. ACM Manag. Data
Jiuqi Wei, Xiaodong Lee, Zhenyu Liao, Themis Palpanas, Botao Peng
2024 B conf
IEEE Big Data
Zhixian Zhuang, Xiaodong Lee, Jiuqi Wei, Yufan Fu, Aiyao Zhang
2024 J jnl
CoRR
Zhixian Zhuang, Xiaodong Lee, Jiuqi Wei, Yufan Fu, Aiyao Zhang
2024 J jnl
CoRR
Jiuqi Wei, Botao Peng, Xiaodong Lee, Themis Palpanas
2024 J jnl
Proc. VLDB Endow.
Jiuqi Wei, Botao Peng, Xiaodong Lee, Themis Palpanas
2024 J jnl
Comput. Networks
Ying Li, Jiuqi Wei, Ziyu Fei, Yufan Fu, Xiaodong Lee
2024 J jnl
Comput. Networks
Yufan Fu, Xiaodong Lee, Jiuqi Wei, Ying Li, Botao Peng
2024 J jnl
IEEE Internet Things J.
Ying Li, Xiaodong Lee, Botao Peng, Themis Palpanas, Jing'an Xue
2024 J jnl
CoRR
Jiuqi Wei, Xiaodong Lee, Zhenyu Liao, Themis Palpanas, Botao Peng
2023 conf
DEXA (1)
Ying Li, Xiaodong Lee, Botao Peng, Themis Palpanas, Jing'an Xue
2023 J jnl
CoRR
Ying Li, Xiaodong Lee, Botao Peng, Themis Palpanas, Jing'an Xue
2017 J jnl
RFC
Zhiwei Yan, Jong-Hyouk Lee, Xiaodong Lee
2017 B conf
IM
Xuebiao Yuchi, Guanggang Geng, Zhiwei Yan, Xiaodong Lee
2016 C conf
QSHINE
Zhiwei Yan, Jong-Hyouk Lee, Guanggang Geng, Xiaodong Lee, Yong-Jin Park
2016 C conf
ISCC
Xuebiao Yuchi, Xiaodong Lee, Lanlan Pan
2016 conf
IEEE BigData
Xueni Li, Guanggang Geng, Zhiwei Yan, Yong Chen, Xiaodong Lee
2015 J jnl
IET Networks
Zhiwei Yan, Hwang-Cheng Wang, Yong-Jin Park, Xiaodong Lee
2015 conf
ICGEC (1)
Xiaowei Liu, Zhiwei Yan, Guanggang Geng, Xiaodong Lee, Shian-Shyong Tseng, Ching-Heng Ku
2015 J jnl
Wirel. Pers. Commun.
Zhiwei Yan, Jong-Hyouk Lee, Xiaodong Lee, Yong-Jin Park
2014 conf
iThings/GreenCom/CPSCom
Peng Liu, Ning Kong, Ye Tian, Xiaodong Lee, Baoping Yan
2014 conf
iThings/GreenCom/CPSCom
Peng Liu, Ning Kong, Ye Tian, Xiaodong Lee, Baoping Yan
2014 B conf
PIMRC
Zhiwei Yan, Xiaodong Lee, Yong-Jin Park
2014 conf
GLOBECOM Workshops
Xiaodong Lee, Zhiwei Yan, Ranganai Chaparadza
2013 conf
GLOBECOM Workshops
Zhiwei Yan, Yong-Jin Park, Jong-Hyouk Lee, Xiaodong Lee
2011 conf
IMIS
Sean Shen, Xiaodong Lee, Zhili Sun, Sheng Jiang
2010 conf
ADMA (2)
Xuebiao Yuchi, Xin Wang, Xiaodong Lee, Baoping Yan
2010 conf
ICANN (3)
Jun Wu, Xin Wang, Xiaodong Lee, Baoping Yan
2010 conf
ADMA (1)
Jun Wu, Xin Wang, Xiaodong Lee, Baoping Yan
2010 conf
ADMA (2)
Xuebiao Yuchi, Xiaodong Lee, Jian Jin, Baoping Yan
2009 B conf
NCA
Zheng Wang, Xiaodong Lee, Jian Jin, Baoping Yan
2008 conf
ACIS-ICIS
Xingyi Jin, Xiaodong Lee, Ning Kong, Baoping Yan
2008 J jnl
J. Commun.
Zheng Wang, Xiaodong Lee, Xinchang Zhang, Baoping Yan
2006 J jnl
RFC
Xiaodong Lee, Wei Mao, Erin Chen, Nai-Wen Hsu, John C. Klensin
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)