Vedran Podobnik

63 papers B 2C 4Misc 3Journal 24Unranked 28
YearRankTypeTitle / Venue / Authors
2024 J jnl
IEEE Access
Damir Kopljar, Vjekoslav Drvar, Jurica Babic, Vedran Podobnik
2022 J jnl
Expert Syst. Appl.
Demijan Grgic, Vedran Podobnik, Arthur Carvalho
2021 conf
ConTEL
Hrvoje Vdovic, Jurica Babic, Vedran Podobnik
2021 J jnl
IEEE Access
Demijan Grgic, Vedran Podobnik
2020 conf
KES-AMSTA
Demijan Grgic, Mislav Karaula, Marina Bagic Babac, Vedran Podobnik
2019 J jnl
IEEE Access
Hrvoje Vdovic, Jurica Babic, Vedran Podobnik
2019 J jnl
Comput. Sci. Inf. Syst.
Demijan Grgic, Hrvoje Vdovic, Jurica Babic, Vedran Podobnik
2019 conf
ConTEL
Dario Pevec, Hrvoje Vdovic, Ivana Gace, Matea Sabolic, Jurica Babic, Vedran Podobnik
2019 conf
ConTEL
Jurica Babic, Ignac Lovrek, Vedran Podobnik, Felipe L. Peñaranda-Foix
2018 J jnl
Complex.
Vanja Smailovic, Vedran Podobnik, Ignac Lovrek
2018 J jnl
IEEE Access
Darko Striga, Vedran Podobnik
2018 J jnl
IEEE Access
Jurica Babic, Arthur Carvalho, Wolfgang Ketter, Vedran Podobnik
2018 J jnl
Inf. Technol. People
Marina Bagic Babac, Vedran Podobnik
2017 conf
ConTEL
Andrea Pirsa, Leon Rokic, Hrvoje Vdovic, Lara Vertlberg, Matea Zilak, Zeljka Car, Vedran Podobnik
2017 C conf
FIE
Juan F. Arratia, Iva Bojic, Vedran Podobnik
2017 J jnl
J. Univers. Comput. Sci.
Klara Grcic, Marina Bagic Babac, Vedran Podobnik
2016 J jnl
Online Inf. Rev.
Marina Bagic Babac, Vedran Podobnik
2016 J jnl
Int. J. Distributed Sens. Networks
Marina Pticek, Vedran Podobnik, Gordan Jezic
2016 conf
AMEC/TADA
Jurica Babic, Arthur Carvalho, Wolfgang Ketter, Vedran Podobnik
2016 J jnl
J. Univers. Comput. Sci.
Vanja Smailovic, Vedran Podobnik
2016 J jnl
CoRR
Iva Bojic, Ivana Nizetic-Kosovic, Alexander Belyi, Stanislav Sobolevsky, Vedran Podobnik, Carlo Ratti
2016 C conf
FIE
Iva Bojic, Vedran Podobnik, Juan F. Arratia, Mislav Grgic
2015 conf
ICT Innovations
Andrej Grguric, Alejandro Martín Medrano Gil, Darko Huljenic, Zeljka Car, Vedran Podobnik
2015 B conf
KES
Vedran Podobnik, Ignac Lovrek
2015 conf
ConTEL
Jurica Babic, Ivan Slivar, Zeljka Car, Vedran Podobnik
2014 conf
AMEC/TADA
Jurica Babic, Vedran Podobnik
2014 Misc conf
SoftCOM
Vanja Smailovic, Darko Striga, Dora-Petra Mamic, Vedran Podobnik
2013 conf
AAAI Workshop: Trading Agent Design and Analysis
Jurica Babic, Vedran Podobnik
2013 J jnl
Comput. Sci. Inf. Syst.
Luka Vrdoljak, Vedran Podobnik, Gordan Jezic
2013 conf
AAAI Workshop: Trading Agent Design and Analysis
Vedran Podobnik
2013 conf
AAAI Workshop: Trading Agent Design and Analysis
Vedran Podobnik
2013 J jnl
AI Mag.
Vikas Agrawal, Christopher Archibald, Mehul Bhatt, Hung Bui, Diane J. Cook, Juan Cortés, Christopher W. Geib, Vibhav Gogate, Hans W. Guesgen, Dietmar Jannach, Michael Johanson, Kristian Kersting, George Dimitri Konidaris, Lars Kotthoff, Martin Michalowski, Sriraam Natarajan, Barry O'Sullivan, Marc Pickett, Vedran Podobnik, David Poole, Lokendra Shastri, Amarda Shehu, Gita Sukthankar
2012 J jnl
Inf. Sci.
Iva Bojic, Vedran Podobnik, Igor Ljubi, Gordan Jezic, Mario Kusek
2012 conf
MIPRO
Vanja Smailovic, Vedran Podobnik
2012 ch.
Computational Social Networks
Iva Bojic, Tomislav Lipic, Vedran Podobnik
2012 conf
KES-AMSTA
Luka Vrdoljak, Vedran Podobnik, Gordan Jezic
2012 Misc conf
SoftCOM
Vedran Podobnik, Darko Striga, Ana Jandras, Ignac Lovrek
2012 J jnl
Expert Syst. Appl.
Iva Bojic, Vedran Podobnik, Ana Petric
2012 conf
AT
Sinisa Matetic, Jurica Babic, Marin Matijas, Ana Petric, Vedran Podobnik
2012 conf
AT
Ivo Buljevic, Ivana Pranjic, Marija Mijic, Jurica Babic, Ana Petric, Vedran Podobnik
2011 conf
AMEC/TADA
Irena Siranovic, Tomislav Cavka, Ana Petric, Vedran Podobnik
2011 conf
KES-AMSTA
Vedran Podobnik, Ignac Lovrek
2011 J jnl
Cybern. Syst.
Iva Bojic, Vedran Podobnik, Mario Kusek, Gordan Jezic
2011 Misc conf
SoftCOM
Igor Sambolec, Ivan Rukavina, Vedran Podobnik
2011 C conf
ICEC
Vedran Podobnik, Ignac Lovrek
2010 conf
KES-AMSTA (2)
Iva Bojic, Vedran Podobnik, Mario Kusek
2010 J jnl
Int. J. Intell. Inf. Database Syst.
Rebeka Belavic, Marko Basuga, Vedran Podobnik, Ana Petric, Ignac Lovrek
2010 J jnl
Trans. Comput. Collect. Intell.
Luka Vrdoljak, Iva Bojic, Vedran Podobnik, Gordan Jezic, Mario Kusek
2010 conf
KES (1)
Vedran Podobnik, Ignac Lovrek
2010
Vedran Podobnik
2009 conf
SOCASE
Vedran Podobnik, Maja Matijasevic, Ignac Lovrek, Lea Skorin-Kapov, Sasa Desic
2009 B conf
ICCCI
Vedran Podobnik, Ana Petric, Krunoslav Trzec, Vedran Galetic, Gordan Jezic
2009 conf
SOCASE
Ana Petric, Krunoslav Trzec, Kresimir Jurasovic, Vedran Podobnik, Gordan Jezic, Mario Kusek, Igor Ljubi
2009 J jnl
Electron. Commer. Res. Appl.
Alberto Sardinha, Michael Benisch, Norman M. Sadeh, Ramprasad Ravichandran, Vedran Podobnik, Mihai Stan
2008 conf
KES (1)
Fran Frkovic, Vedran Podobnik, Krunoslav Trzec, Gordan Jezic
2008 J jnl
J. Univers. Comput. Sci.
Vedran Podobnik, Ana Petric, Gordan Jezic
2008 C conf
IEA/AIE
Tvrtko Milicic, Vedran Podobnik, Ana Petric, Gordan Jezic
2007 J jnl
Int. J. Inf. Technol. Web Eng.
Vedran Podobnik, Krunoslav Trzec, Gordan Jezic
2007 conf
ICDIM
Igor Ljubi, Vedran Podobnik, Gordan Jezic
2007 conf
KES-AMSTA
Ana Petric, Vedran Podobnik, Gordan Jezic
2006 conf
OTM Workshops (1)
Vedran Podobnik, Krunoslav Trzec, Gordan Jezic
2006 conf
TADA/AMEC
Ana Petric, Vedran Podobnik, Gordan Jezic
2006 conf
OTM Workshops (1)
Vedran Podobnik, Ana Petric, Gordan Jezic
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)