Haibin Ouyang

64 papers Journal 62Unranked 2
YearRankTypeTitle / Venue / Authors
2026 J jnl
Swarm Evol. Comput.
Yichao He, Guoxin Chen, Xizhao Wang, Haibin Ouyang, Manman Meng, Ju Chen
2026 J jnl
Knowl. Based Syst.
Haibin Ouyang, Xuyu Lin, Steven Li, Weiping Ding, Fei Li
2026 J jnl
Expert Syst. Appl.
Kaiquan Guan, Haibin Ouyang, Steven Li, Gaige Wang, Nagwan M. Abdel Samee, Essam H. Houssein
2026 J jnl
Appl. Soft Comput.
Zhiwen Su, Haibin Ouyang, Steven Li, Zhi-Hui Zhan, Weiping Ding
2026 J jnl
Inf. Sci.
Rongna Cai, Haibin Ouyang, Steven Li, Gaige Wang, Weiping Ding
2025 J jnl
Clust. Comput.
Da Feng, Jianchang Liu, Haibin Ouyang
2025 J jnl
Appl. Soft Comput.
Jianhong Chen, Haibin Ouyang, Steven Li, Chunliang Zhang, Zhi-Hui Zhan
2025 J jnl
Appl. Soft Comput.
Chang He, Haibin Ouyang, Weiqing Huang, Steven Li, Chunliang Zhang, Weiping Ding, Zhi-Hui Zhan
2025 J jnl
Swarm Evol. Comput.
Bozhen Chen, Haibin Ouyang, Steven Li, Weiping Ding
2025 J jnl
Comput. Ind. Eng.
Dexuan Zou, Lejie Ma, Fan Li, Haibin Ouyang, Yingying Shao
2025 J jnl
Swarm Evol. Comput.
Chunliang Zhang, Huang Li, Shangbin Long, Xia Yue, Haibin Ouyang, Houyao Zhu, Steven Li
2025 J jnl
Artif. Intell. Rev.
Juan Lu, Huailong Mu, Haibin Ouyang, Zhenkun Zhang, Weiping Ding
2025 J jnl
Inf. Sci.
Hao Pan, Hui Yuan, Qiang Yue, Haibin Ouyang, Fangqing Gu, Fei Li
2025 J jnl
Appl. Soft Comput.
Zhuoxuan Yuan, Haibin Ouyang, Steven Li, Essam H. Houssein, Nagwan M. Abdel Samee
2025 J jnl
Expert Syst. Appl.
Fei Li, Hao Pan, Yilong Ji, Haibin Ouyang
2025 J jnl
Appl. Soft Comput.
Bozhen Chen, Haibin Ouyang, Steven Li, Liqun Gao, Weiping Ding
2025 J jnl
Clust. Comput.
Haibin Ouyang, Xuyu Lin, Steven Li, Liqun Gao, Essam H. Houssein
2025 J jnl
IEEE Trans. Emerg. Top. Comput. Intell.
Haibin Ouyang, Dongmei Liu, Steven Li, Weiping Ding, Zhi-Hui Zhan
2024 J jnl
J. Comput. Des. Eng.
Haibin Ouyang, Siqi Liang, Steven Li, Ziyu Zhou, Zhi-Hui Zhan
2024 J jnl
Expert Syst. Appl.
Fei Li, Qiang Yue, Yuanchao Liu, Haibin Ouyang, Fangqing Gu
2024 J jnl
Expert Syst. Appl.
Haibin Ouyang, Leisen Liang, Steven Li, Liqun Gao
2024 J jnl
Eng. Appl. Artif. Intell.
Dexuan Zou, Mengdi Li, Haibin Ouyang
2024 J jnl
Inf. Sci.
Lina Wang, Yichao He, Xizhao Wang, Zihang Zhou, Haibin Ouyang, Seyedali Mirjalili
2024 J jnl
Inf. Sci.
Bozhen Chen, Haibin Ouyang, Steven Li, Dexuan Zou
2024 J jnl
Artif. Intell. Rev.
Jinglin Wang, Haibin Ouyang, Steven Li, Weiping Ding, Liqun Gao
2024 J jnl
Eng. Appl. Artif. Intell.
Dexuan Zou, Lejie Ma, Can Li, Haibin Ouyang
2024 J jnl
Math. Comput. Simul.
Yichao He, Jinghong Wang, Xuejing Liu, Xizhao Wang, Haibin Ouyang
2024 J jnl
Appl. Soft Comput.
Chunliang Zhang, Huang Li, Shangbin Long, Xia Yue, Haibin Ouyang, Zeyu Chen, Steven Li
2023 conf
ICSI (1)
Siqi Liang, Chang He, Haibin Ouyang
2023 J jnl
Expert Syst. Appl.
Fazhan Zhang, Yichao He, Haibin Ouyang, Wenben Li
2023 J jnl
Math. Comput. Simul.
Haibin Ouyang, Jianhong Chen, Steven Li, Jianhua Xiang, Zhi-Hui Zhan
2023 J jnl
J. Comput. Des. Eng.
Mengdi Li, Dexuan Zou, Haibin Ouyang
2023 J jnl
Complex Syst. Model. Simul.
Jinglin Wang, Haibin Ouyang, Zhiyu Zhou, Steven Li
2023 J jnl
J. Comput. Des. Eng.
Dongmei Liu, Haibin Ouyang, Steven Li, Chunliang Zhang, Zhi-Hui Zhan
2023 J jnl
Appl. Intell.
Yinglong Dai, Haibin Ouyang, Hong Zheng, Han Long, Xiaojun Duan
2023 J jnl
Appl. Soft Comput.
Fei Li, Yujie Yang, Zhengkun Shang, Siyuan Li, Haibin Ouyang
2023 J jnl
Eng. Appl. Artif. Intell.
Haibin Ouyang, Kang Liu, Chunliang Zhang, Steven Li, Liqun Gao
2023 J jnl
Appl. Soft Comput.
Juan Lu, Zhiheng Chen, Xiaoping Liao, Chaoyi Chen, Haibin Ouyang, Steven Li
2023 J jnl
Appl. Soft Comput.
Chang He, Weiqing Huang, Haibin Ouyang, Steven Li, Jianhua Xiang
2022 J jnl
Comput. Ind. Eng.
Dexuan Zou, Steven Li, Kefeng Xuan, Haibin Ouyang
2022 J jnl
Appl. Intell.
Wenqi Wei, Haibin Ouyang, Wenqiang Wu, Steven Li, Dexuan Zou
2022 J jnl
Appl. Soft Comput.
Liyun Fu, Haibin Ouyang, Chengyun Zhang, Steven Li, Ali Wagdy Mohamed
2022 J jnl
Math. Comput. Simul.
Wenqi Wei, Haibin Ouyang, Steven Li, Xuanbo Zhao, Dexuan Zou
2021 J jnl
Appl. Soft Comput.
Wenqi Wei, Haibin Ouyang, Chunliang Zhang, Steven Li, Liyun Fu, Liqun Gao
2021 J jnl
IEEE Access
Liyun Fu, Houyao Zhu, Chengyun Zhang, Haibin Ouyang, Steven Li
2021 J jnl
IEEE Access
Yongbin Quan, Haibin Ouyang, Chunliang Zhang, Steven Li, Liqun Gao
2021 J jnl
Soft Comput.
Zuanjia Xie, Chunliang Zhang, Haibin Ouyang, Steven Li, Liqun Gao
2020 J jnl
Appl. Intell.
Wenqiang Wu, Haibin Ouyang, Ali Wagdy Mohamed, Chunliang Zhang, Steven Li
2020 J jnl
IEEE Access
Ting Huang, Chunliang Zhang, Haibin Ouyang, Guangshun Luo, Steven Li, Dexuan Zou
2020 J jnl
IEEE Access
Xiao-Jing Zhong, Feiqi Deng, Haibin Ouyang
2019 J jnl
Complex.
Juan Lu, Xiaoping Liao, Steven Li, Haibin Ouyang, Kai Chen, Bing Huang
2019 conf
BIC-TA (1)
Sizhi Qiu, Bo Hu, Yongbin Quan, Xiaoxin Jian, Haibin Ouyang
2019 J jnl
Soft Comput.
Haibin Ouyang, Wenqiang Wu, Chunliang Zhang, Steven Li, Dexuan Zou, Guiyun Liu
2018 J jnl
Appl. Intell.
Haibin Ouyang, Liqun Gao, Steven Li
2017 J jnl
Appl. Soft Comput.
Haibin Ouyang, Liqun Gao, Steven Li, Xiangyong Kong, Qing Wang, Dexuan Zou
2017 J jnl
Appl. Soft Comput.
Haibin Ouyang, Liqun Gao, Steven Li, Xiangyong Kong
2016 J jnl
Inf. Sci.
Haibin Ouyang, Liqun Gao, Xiangyong Kong, Steven Li, Dexuan Zou
2015 J jnl
Expert Syst. Appl.
Xiangyong Kong, Liqun Gao, Haibin Ouyang, Steven Li
2015 J jnl
Inf. Sci.
Haibin Ouyang, Liqun Gao, Steven Li, Xiangyong Kong
2015 J jnl
Comput. Oper. Res.
Xiangyong Kong, Liqun Gao, Haibin Ouyang, Steven Li
2015 J jnl
Reliab. Eng. Syst. Saf.
Xiangyong Kong, Liqun Gao, Haibin Ouyang, Steven Li
2015 J jnl
Appl. Math. Comput.
Haibin Ouyang, Liqun Gao, Xiangyong Kong, Dexuan Zou, Steven Li
2014 J jnl
Appl. Math. Comput.
Haibin Ouyang, Liqun Gao, Steven Li, Xiangyong Kong, Dexuan Zou
2013 J jnl
Soft Comput.
Xiangyong Kong, Haibin Ouyang, Xiaoxue Piao
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)