Weining Zhang

53 papers A* 2A 2B 5C 6Journal 22Unranked 16
YearRankTypeTitle / Venue / Authors
2024 J jnl
PeerJ Comput. Sci.
Xifeng Shen, Yuanyuan Sun, Chunxia Zhang, Cheng Yang, Yi Qin, Weining Zhang, Jiale Nan, Meiling Che, Dongping Gao
2024 A conf
IROS
Jiaxu Wang, Qiang Zhang, Jingkai Sun, Jiahang Cao, Gang Han, Wen Zhao, Weining Zhang, Yecheng Shao, Yijie Guo, Renjing Xu
2024 A conf
IROS
Qiang Zhang, Peter Cui, David Yan, Jingkai Sun, Yiqun Duan, Gang Han, Wen Zhao, Weining Zhang, Yijie Guo, Arthur Zhang, Renjing Xu
2023 J jnl
IEEE Access
Yiyang Wang, Weining Zhang
2023 J jnl
IEEE Intell. Transp. Syst. Mag.
Jinghan Du, Minghua Hu, Weining Zhang, Jianan Yin
2020 J jnl
IEEE Access
Yuzhen Zhao, Weining Zhang, Minghe Sun, Xiyu Liu
2020 J jnl
Multim. Tools Appl.
Haiyan Chen, Jinghan Du, Weining Zhang, Bohan Li
2020 conf
ITSC
Jinghan Du, Minghua Hu, Weining Zhang
2019 J jnl
IEEE Access
Wenke Zang, Weining Zhang, Zehua Wang, Dong Jiang, Xiyu Liu, Minghe Sun
2019 conf
BigComp
Weining Zhang, Xiaoyang Tan
2019 B conf
CLOUD
David Holland, Weining Zhang
2019 J jnl
Neural Process. Lett.
Weining Zhang, Dong Wang, Xiaoyang Tan
2018 C conf
ISNN
Weining Zhang, Dong Wang, Xiaoyang Tan
2018 conf
UCC Companion
Weining Zhang, David Holland
2017 J jnl
Algorithms
Wenke Zang, Weining Zhang, Wenqian Zhang, Xiyu Liu
2017 J jnl
Entropy
Wenke Zang, Weining Zhang, Wenqian Zhang, Xiyu Liu
2015 conf
SmartCity
Weining Zhang, David Holland
2015 C conf
ICISSP
Al Amin Hossain, Weining Zhang
2014 J jnl
J. Robotics Netw. Artif. Life
Jiwu Wang, Xianwen Zhang, Weining Zhang, Masanori Sugisaka
2013 conf
SocialCom
Hongwei Tian, Weining Zhang
2012 J jnl
Trans. Data Priv.
Hongwei Tian, Weining Zhang, Shouhuai Xu, Patrick Sharkey
2012 conf
SocialInformatics
Lijie Zhang, Weining Zhang
2011 J jnl
Data Knowl. Eng.
Hongwei Tian, Weining Zhang
2009 conf
CSE (4)
Lijie Zhang, Weining Zhang
2009 conf
ITNG
Hongwei Tian, Weining Zhang
2008 B conf
DaWaK
Lijie Zhang, Weining Zhang
2007 conf
PinKDD
Patrick Sharkey, Hongwei Tian, Weining Zhang, Shouhuai Xu
2006 conf
ETRICS
Jim Dowd, Shouhuai Xu, Weining Zhang
2005 conf
IEEE SCC
Shouhuai Xu, Weining Zhang
2004 C conf
APWeb
Weining Zhang, Douglas Pollok
2003 conf
Applied Informatics
Weining Zhang, Douglas Pollok
2001 J jnl
IEEE Trans. Knowl. Data Eng.
Qi Yang, Weining Zhang, Chengwen Liu, Jing Wu, Clement T. Yu, Hiroshi Nakajima, Naphtali Rishe
2000 J jnl
IEEE Trans. Knowl. Data Eng.
Weining Zhang, Ke Wang
1999 B conf
ICTAI
Weining Zhang
1997 B conf
DASFAA
Weining Zhang, Elizabeth Laun, Weiyi Meng
1997 J jnl
Acta Informatica
Ke Wang, Weining Zhang, Siu-Cheung Chau
1995 A* conf
ICDE
Weining Zhang, Clement T. Yu, Bryan Reagan, Hiroshi Nakajima
1995 J jnl
IEEE Trans. Knowl. Data Eng.
Weining Zhang, Ke Wang, Siu-Cheung Chau
1995 J jnl
J. ACM
Ke Wang, Weining Zhang, Siu-Cheung Chau
1993 conf
PDIS
Ouri Wolfson, Weining Zhang, Harish Butani, Akira Kawaguchi, Kui W. Mok
1993 B conf
ICTAI
Du Zhang, Weining Zhang
1993 C conf
ICCI
Ke Wang, Weining Zhang, Siu-Cheung Chau
1993 conf
SOFTEKS Workshop on Incompleteness and Uncertainty in Information Systems
Qi Yang, Weining Zhang, Chengjie Luo, Clement T. Yu, Hiroshi Nakajima
1992 C conf
ICCI
Siu-Cheung Chau, Weining Zhang, Arthur L. Liestman
1992 J jnl
J. Am. Soc. Inf. Sci.
Wei Sun, Lon-Mu Liu, Weining Zhang, John Craig Comfort
1992 J jnl
Int. J. Parallel Program.
Ouri Wolfson, Weining Zhang, Harish Butani, Akira Kawaguchi, Kui W. Mok
1991 conf
PDIS
Weining Zhang, Ke Wang, Siu-Cheung Chau
1990 J jnl
ACM Trans. Database Syst.
Weining Zhang, Clement T. Yu, Daniel Troy
1990 C conf
SEKE
W. S. Luk, Weining Zhang, Jiawei Han
1989 J jnl
IEEE Trans. Software Eng.
Daniel Troy, Clement T. Yu, Weining Zhang
1987 conf
SIGMOD Conference
Weining Zhang, Clement T. Yu
1987 J jnl
IEEE Trans. Computers
Clement T. Yu, Keh-Chang Guh, Weining Zhang, Marjorie Templeton, David Brill, Arbee L. P. Chen
1987 A* conf
ICDE
Clement T. Yu, Weining Zhang
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)