Hani Mehrpouyan

107 papers B 14Misc 1Journal 65Unranked 27
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Access
Zahra Rahimian Omam, Saeideh Shad, Bahram Khalichi, Hani Mehrpouyan, Mohsen Khalily, Ahmed A. Kishk
2024 J jnl
CoRR
Hossein Mehri, Hao Chen, Hani Mehrpouyan
2024 J jnl
CoRR
Hossein Mehri, Hao Chen, Hani Mehrpouyan
2022 J jnl
Int. J. Commun. Syst.
Jinwen Liu, David W. Matolak, Ismail Güvenç, Hani Mehrpouyan
2021 J jnl
IEEE Trans. Wirel. Commun.
Mojtaba Ahmadi Almasi, Lisi Jiang, Hamid Jafarkhani, Hani Mehrpouyan
2021 conf
VTC Fall
Changyu Guo, Mahfuza Khatun, Tiffany Berntsen, Hani Mehrpouyan
2021 conf
RWS
Saeideh Shad, Hani Mehrpouyan
2020 conf
VTC Fall
Roohollah Amiri, Eren Balevi, Jeffrey G. Andrews, Hani Mehrpouyan
2020 J jnl
CoRR
Roohollah Amiri, Eren Balevi, Jeffrey G. Andrews, Hani Mehrpouyan
2020 J jnl
IEEE Trans. Wirel. Commun.
Mojtaba Ahmadi Almasi, Roohollah Amiri, Hamid Jafarkhani, Hani Mehrpouyan
2019 conf
VTC Fall
Letizia Moro, Hani Mehrpouyan
2019 J jnl
CoRR
Letizia Moro, Hani Mehrpouyan
2019 J jnl
IEEE Trans. Commun.
Mojtaba Ahmadi Almasi, Mojtaba Vaezi, Hani Mehrpouyan
2019 B conf
GLOBECOM
Mahfuza Khatun, Changyu Guo, David Matolak, Hani Mehrpouyan
2019 J jnl
EURASIP J. Adv. Signal Process.
Abbas Koohian, Hani Mehrpouyan, Ali A. Nasir, Salman Durrani
2019 conf
ICC Workshops
Mojtaba Ahmadi Almasi, Roohollah Amiri, Mojtaba Vaezi, Hani Mehrpouyan
2019 J jnl
CoRR
Mojtaba Ahmadi Almasi, Roohollah Amiri, Mojtaba Vaezi, Hani Mehrpouyan
2019 conf
VTC Fall
Mahfuza Khatun, Changyu Guo, Letizia Moro, David Matolak, Hani Mehrpouyan
2019 conf
CCWC
Roohollah Amiri, Hani Mehrpouyan
2019 J jnl
IEEE Trans. Wirel. Commun.
Roohollah Amiri, Mojtaba Ahmadi Almasi, Jeffrey G. Andrews, Hani Mehrpouyan
2018 conf
GlobalSIP
Mahfuza Khatun, Hani Mehrpouyan, David Matolak
2018 conf
ICC
Roohollah Amiri, Hani Mehrpouyan, Lex Fridman, Ranjan K. Mallik, Arumugam Nallanathan, David Matolak
2018 J jnl
CoRR
Roohollah Amiri, Hani Mehrpouyan, Lex Fridman, Ranjan K. Mallik, Arumugam Nallanathan, David Matolak
2018 J jnl
CoRR
Mojtaba Ahmadi Almasi, Roohollah Amiri, Hani Mehrpouyan
2018 conf
ICC
Mojtaba Ahmadi Almasi, Hani Mehrpouyan, Vida Vakilian, Nader Behdad, Hamid Jafarkhani
2018 J jnl
CoRR
Mojtaba Ahmadi Almasi, Hani Mehrpouyan, Vida Vakilian, Nader Behdad, Hamid Jafarkhani
2018 J jnl
CoRR
Mojtaba Ahmadi Almasi, Mojtaba Vaezi, Hani Mehrpouyan
2018 J jnl
IEEE Trans. Wirel. Commun.
Cunhua Pan, Hani Mehrpouyan, Yuanwei Liu, Maged Elkashlan, Arumugam Nallanathan
2018 conf
VTC Fall
Roohollah Amiri, Hani Mehrpouyan, David Matolak, Maged Elkashlan
2018 J jnl
CoRR
Roohollah Amiri, Hani Mehrpouyan
2018 conf
VTC Fall
Mojtaba Ahmadi Almasi, Hani Mehrpouyan
2018 J jnl
CoRR
Mojtaba Ahmadi Almasi, Hani Mehrpouyan
2018 conf
ICC Workshops
Mojtaba Ahmadi Almasi, Hani Mehrpouyan, David Matolak, Cunhua Pan, Maged Elkashlan
2018 J jnl
CoRR
Mojtaba Ahmadi Almasi, Hani Mehrpouyan, David Matolak, Cunhua Pan, Maged Elkashlan
2018 J jnl
Int. J. Satell. Commun. Netw.
Zohair Abu-Shaban, Hani Mehrpouyan, Bhavani Shankar Mysore Rama Rao, Björn E. Ottersten
2018 J jnl
CoRR
Roohollah Amiri, Mojtaba Ahmadi Almasi, Jeffrey G. Andrews, Hani Mehrpouyan
2018 J jnl
EURASIP J. Adv. Signal Process.
Abbas Koohian, Hani Mehrpouyan, Ali A. Nasir, Salman Durrani, Steven D. Blostein
2017 conf
VTC Fall
Solmaz Niknam, Hani Mehrpouyan, Balasubramaniam Natarajan
2017 J jnl
IEEE Access
Wei Wang, Rui Wang, Hani Mehrpouyan, Nan Zhao, Guoan Zhang
2017 B conf
GLOBECOM
Cunhua Pan, Hani Mehrpouyan, Yuanwei Liu, Maged Elkashlan, Arumugam Nallanathan
2017 J jnl
CoRR
Cunhua Pan, Hani Mehrpouyan, Yuanwei Liu, Maged Elkashlan, Arumugam Nallanathan
2017 B conf
IWCMC
Sana Habib, Syed Ali Hassan, Ali Arshad Nasir, Hani Mehrpouyan
2017 J jnl
IEEE Trans. Commun.
Omar Hazim Salim, Ali A. Nasir, Hani Mehrpouyan, Wei Xiang
2017 J jnl
CoRR
Mojtaba Ahmadi Almasi, Hani Mehrpouyan, Vida Vakilian, Nader Behdad, Hamid Jafarkhani
2017 conf
ICC
Abbas Koohian, Hani Mehrpouyan, Ali Arshad Nasir, Salman Durrani, Steven D. Blostein
2016 J jnl
IEEE Access
Solmaz Niknam, Ali Arshad Nasir, Hani Mehrpouyan, Balasubramaniam Natarajan
2016 J jnl
CoRR
Solmaz Niknam, Ali A. Nasir, Hani Mehrpouyan, Balasubramaniam Natarajan
2016 J jnl
CoRR
Wei Wang, Rui Wang, Hani Mehrpouyan
2016 J jnl
IEEE Trans. Wirel. Commun.
Rui Wang, Hani Mehrpouyan, Meixia Tao, Yingbo Hua
2016 J jnl
IEEE Trans. Wirel. Commun.
Wanchun Liu, Xiangyun Zhou, Salman Durrani, Hani Mehrpouyan, Steven D. Blostein
2016 J jnl
IEEE Commun. Lett.
Vida Vakilian, Hani Mehrpouyan
2016 J jnl
CoRR
Omar Hazim Salim, Wei Xiang, Ali A. Nasir, Gengkun Wang, Hani Mehrpouyan
2016 B conf
WCNC
Ali A. Nasir, Hani Mehrpouyan, David Matolak, Salman Durrani
2016 Misc conf
ICCS
Wei Wang, Rui Wang, Hani Mehrpouyan, Guoan Zhang
2016 J jnl
IEEE Trans. Veh. Technol.
Weiyang Xu, Wei Xiang, Maged Elkashlan, Hani Mehrpouyan
2016 J jnl
EURASIP J. Wirel. Commun. Netw.
Ali A. Nasir, Salman Durrani, Hani Mehrpouyan, Steven D. Blostein, Rodney A. Kennedy
2015 conf
ICC
Abbas Koohian, Hani Mehrpouyan, Mahmoud Ahmadian, Mohammad Azarbad
2015 J jnl
CoRR
Abbas Koohian, Hani Mehrpouyan, Ali A. Nasir, Salman Durrani, Mohammad Azarbad, Steven D. Blostein
2015 J jnl
IEEE Trans. Wirel. Commun.
Rui Wang, Meixia Tao, Hani Mehrpouyan, Yingbo Hua
2015 J jnl
CoRR
Wanchun Liu, Xiangyun Zhou, Salman Durrani, Hani Mehrpouyan, Steven D. Blostein
2015 J jnl
CoRR
Vida Vakilian, Hani Mehrpouyan, Yingbo Hua, Hamid Jafarkhani
2015 B conf
WCNC
Vida Vakilian, Hani Mehrpouyan, Yingbo Hua
2015 J jnl
CoRR
Vida Vakilian, Hani Mehrpouyan, Yingbo Hua, Hamid Jafarkhani
2015 J jnl
CoRR
Hani Mehrpouyan, Michail Matthaiou, Rui Wang, George K. Karagiannidis, Yingbo Hua
2015 J jnl
IEEE Commun. Mag.
Hani Mehrpouyan, Michail Matthaiou, Rui Wang, George K. Karagiannidis, Yingbo Hua
2015 B conf
GLOBECOM
Wanchun Liu, Xiangyun Zhou, Salman Durrani, Hani Mehrpouyan, Steven D. Blostein
2015 J jnl
CoRR
Ali A. Nasir, Salman Durrani, Hani Mehrpouyan, Steven D. Blostein, Rodney A. Kennedy
2014 J jnl
CoRR
Rui Wang, Meixia Tao, Hani Mehrpouyan, Yingbo Hua
2014 B conf
GLOBECOM
Rui Wang, Hani Mehrpouyan, Meixia Tao, Yingbo Hua
2014 J jnl
IEEE Trans. Commun.
Omar Hazim Salim, Ali A. Nasir, Hani Mehrpouyan, Wei Xiang, Salman Durrani, Rodney A. Kennedy
2014 J jnl
CoRR
Zohair Abu-Shaban, M. R. Bhavani Shankar, Hani Mehrpouyan, Björn E. Ottersten
2014 conf
ICC
Zohair Abu-Shaban, Bhavani Shankar Mysore Rama Rao, Hani Mehrpouyan, Björn E. Ottersten
2014 J jnl
IEEE Commun. Mag.
Hani Mehrpouyan, Mohammad Reza Khanzadi, Michail Matthaiou, Akbar M. Sayeed, Robert Schober, Yingbo Hua
2014 J jnl
CoRR
Zohair Abu-Shaban, Hani Mehrpouyan, Bhavani Shankar Mysore Rama Rao, Björn E. Ottersten
2014 J jnl
IET Commun.
Arif Önder Isikman, Hani Mehrpouyan, Ali A. Nasir, Alexandre Graell i Amat, Rodney A. Kennedy
2014 B conf
GLOBECOM
Rui Wang, Hani Mehrpouyan, Meixia Tao, Yingbo Hua
2014 J jnl
CoRR
Zohair Abu-Shaban, Hani Mehrpouyan, Joel Grotz, Björn E. Ottersten
2014 conf
SPAWC
Ali A. Nasir, Hani Mehrpouyan, Salman Durrani, Steven D. Blostein, Rodney A. Kennedy
2013 J jnl
CoRR
Rui Wang, Hani Mehrpouyan, Meixia Tao, Yingbo Hua
2013 J jnl
CoRR
Omar Hazim Salim, Ali A. Nasir, Hani Mehrpouyan, Wei Xiang, Salman Durrani, Rodney A. Kennedy
2013 conf
SPAWC
Ali A. Nasir, Hani Mehrpouyan, Salman Durrani, Steven D. Blostein, Rodney A. Kennedy, Björn E. Ottersten
2013 J jnl
CoRR
Hani Mehrpouyan, Mohammad Reza Khanzadi, Michail Matthaiou, Akbar M. Sayeed, Robert Schober, Yingbo Hua
2013 J jnl
CoRR
Arif Önder Isikman, Hani Mehrpouyan, Ali A. Nasir, Alexandre Graell i Amat, Rodney A. Kennedy
2013 conf
SPAWC
Ali A. Nasir, Hani Mehrpouyan, Rodney A. Kennedy
2013 J jnl
IEEE Trans. Commun.
Ali A. Nasir, Hani Mehrpouyan, Salman Durrani, Steven D. Blostein, Rodney A. Kennedy, Björn E. Ottersten
2013 conf
SPAWC
Zohair Abu-Shaban, Hani Mehrpouyan, Joel Grotz, Björn E. Ottersten
2013 J jnl
IEEE Trans. Signal Process.
Ali A. Nasir, Hani Mehrpouyan, Robert Schober, Yingbo Hua
2013 conf
SPAWC
Omar Hazim Salim, Ali A. Nasir, Hani Mehrpouyan, Wei Xiang
2013 B conf
GLOBECOM
Hani Mehrpouyan, Steven D. Blostein, Björn E. Ottersten
2013 J jnl
CoRR
Ali Arshad Nasir, Hani Mehrpouyan, Salman Durrani, Steven D. Blostein, Rodney A. Kennedy
2013 J jnl
IEEE Trans. Signal Process.
Ali A. Nasir, Hani Mehrpouyan, Salman Durrani, Steven D. Blostein, Rodney A. Kennedy, Björn E. Ottersten
2012 conf
ICC
Ali A. Nasir, Hani Mehrpouyan, Steven D. Blostein, Salman Durrani, Rodney A. Kennedy
2012 J jnl
IEEE Trans. Signal Process.
Hani Mehrpouyan, Ali A. Nasir, Steven D. Blostein, Thomas Eriksson, George K. Karagiannidis, Tommy Svensson
2012 B conf
PIMRC
M. Assad Tariq, Hani Mehrpouyan, Tommy Svensson
2012 J jnl
CoRR
Arif Önder Isikman, Hani Mehrpouyan, Alexandre Graell i Amat
2012 conf
SPAWC
Hani Mehrpouyan, Ali A. Nasir, Thomas Eriksson, Steven D. Blostein, George K. Karagiannidis, Tommy Svensson
2012 J jnl
IEEE Trans. Signal Process.
Ali A. Nasir, Hani Mehrpouyan, Steven D. Blostein, Salman Durrani, Rodney A. Kennedy
2011 B conf
GLOBECOM
Hani Mehrpouyan, Steven D. Blostein, Tommy Svensson
2011 J jnl
IEEE Trans. Wirel. Commun.
Hani Mehrpouyan, Steven D. Blostein
2011 J jnl
IEEE Trans. Signal Process.
Hani Mehrpouyan, Steven D. Blostein
2011 conf
ICSPCS
Mohammad Reza Khanzadi, Hani Mehrpouyan, Erik Alpman, Tommy Svensson, Dan Kuylenstierna, Thomas Eriksson
2011 B conf
GLOBECOM
Rajet Krishnan, Hani Mehrpouyan, Thomas Eriksson, Tommy Svensson
2010 B conf
GLOBECOM
Hani Mehrpouyan, Steven D. Blostein
2010 conf
ICC
Hani Mehrpouyan, Steven D. Blostein
2009 conf
ICC
Yi Zheng, Hani Mehrpouyan, Steven D. Blostein
2008 J jnl
IEEE Trans. Wirel. Commun.
Hani Mehrpouyan, Steven D. Blostein
2007 B conf
GLOBECOM
Hani Mehrpouyan, Steven D. Blostein
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)