Valery D. Solovyev

58 papers C 5Misc 3Journal 19Unranked 31
YearRankTypeTitle / Venue / Authors
2026 J jnl
J. Intell. Fuzzy Syst.
Vladimir V. Bochkarev, Andrey V. Savinkov, Anna V. Shevlyakova, Valery D. Solovyev
2025 J jnl
Computación y Sistemas (CyS)
Valery D. Solovyev, Andrey M. Ten, Marina Solnyshkina, Mariia Andreeva
2024 conf
SPECOM (2)
Valery D. Solovyev, Anna Ivleva
2024 conf
MICAI (2)
Marina Solnyshkina, Valery D. Solovyev, Andrew V. Danilov, Radif Zamaletdinov, Svetlana Akhtyamova
2023 J jnl
Frontiers Artif. Intell.
Liana Ermakova, Valery D. Solovyev, Grigori Sidorov, Alexander F. Gelbukh
2023 C conf
PACLIC
Aleksei V. Abramov, Vladimir Ivanov, Valery D. Solovyev
2023 conf
MICAI (2)
Vladimir V. Bochkarev, Andrey Achkeev, Andrey V. Savinkov, Anna V. Shevlyakova, Valery D. Solovyev
2023 J jnl
Computación y Sistemas (CyS)
Aleksei V. Abramov, Vladimir Ivanov, Valery D. Solovyev
2023 conf
SPECOM (1)
Alexandra Vahrusheva, Valery D. Solovyev, Marina Solnyshkina, Elzara Gafiyatova, Svetlana Akhtyamova
2022 J jnl
CoRR
Vladimir Ivanov, Valery D. Solovyev
2022 J jnl
J. Intell. Fuzzy Syst.
Vladimir Ivanov, Valery D. Solovyev
2022 conf
SPECOM
Valery D. Solovyev, Musa Islamov, Venera Bayrasheva
2022 J jnl
IEEE Access
Vladimir V. Bochkarev, Stanislav Khristoforov, Anna V. Shevlyakova, Valery D. Solovyev
2021 C conf
GWC
Valery D. Solovyev, Natalia V. Loukachevitch
2021 J jnl
Computación y Sistemas
Gulnara Gimaletdinova, Liliia Khalitova, Valery D. Solovyev, Vladimir V. Bochkarev
2021 conf
IMS
Valery D. Solovyev, Musa Islamov, Marina Solnyshkina, Roman Kupriyanov, Elzara Gafiyatova
2020 conf
IMS
Anna V. Shevlyakova, Valery D. Solovyev, Vladimir V. Bochkarev
2020 conf
DAMDID/RCDL (Selected Papers)
Liliya Usmanova, Irina Erofeeva, Valery D. Solovyev, Vladimir V. Bochkarev
2020 conf
SPECOM
Valery D. Solovyev, Vladimir Ivanov
2020 conf
CMCL
Mariia Andreeva, Marina Solnyshkina, Valery D. Solovyev, Artem Zaikin, Olga Bukach
2020 C conf
DeSE
Galya Gatiyatullina, Marina Solnyshkina, Valery D. Solovyev, Andrey Danilov, Ekaterina Martynova, Iskander Yarmakeev
2020 J jnl
J. Intell. Fuzzy Syst.
Vladimir Ivanov, Valery D. Solovyev
2020 conf
MICAI (2)
Ildar Z. Batyrshin, Iván Ramírez Mejia, Ilnur I. Batyrshin, Valery D. Solovyev
2020 conf
IMS
Valery D. Solovyev, Marina Solnyshkina, Mariia Andreeva, Andrey Danilov, Radif Zamaletdinov
2020 conf
MICAI (2)
Valery D. Solovyev, Vladimir Ivanov, Marina Solnyshkina
2020 C conf
DeSE
Andrey Sakhovskiy, Elena Tutubalina, Valery D. Solovyev, Marina Solnyshkina
2019 conf
MICAI
Vladimir V. Bochkarev, Valery D. Solovyev, Anna V. Shevlyakova
2019 conf
AIST (Supplement)
Vladimir V. Bochkarev, Anna V. Shevlyakova, Valery D. Solovyev
2019 Misc conf
AIST
Elena Tutubalina, Ilseyar Alimova, Valery D. Solovyev
2019 C conf
DeSE
Valery D. Solovyev, Mariia Andreeva, Marina Solnyshkina, Radif Zamaletdinov, Andrey Danilov, Dina Gaynutdinova
2019 conf
AIST (Supplement)
Valery D. Solovyev, Gulnara Gimaletdinova, Liliia Khalitova, Liliya Usmanova
2019 conf
DAMDID/RCDL (Selected Papers)
Valery D. Solovyev, Vladimir V. Bochkarev, Svetlana S. Akhtyamova
2019 conf
DAMDID/RCDL
Valery D. Solovyev, Svetlana Akhtyamova
2019 J jnl
J. Intell. Fuzzy Syst.
Valery D. Solovyev, Marina Solnyshkina, Vladimir Ivanov, Ildar Z. Batyrshin
2019 Misc conf
FRUCT
Valery D. Solovyev, Marina Solnyshkina, Elzara Gafiyatova, Danielle S. McNamara, Vladimir Ivanov
2018 J jnl
J. Intell. Fuzzy Syst.
Valery D. Solovyev, Vladimir Ivanov, Marina Solnyshkina
2018 conf
AIST (Supplement)
Marina Solnyshkina, Vladimir Ivanov, Valery D. Solovyev
2018 conf
CICLing (1)
Valery D. Solovyev, Marina Solnyshkina, Vladimir Ivanov, Svetlana P. Timoshenko
2018 conf
MICAI (2)
Marina Solnyshkina, Vladimir Ivanov, Valery D. Solovyev
2017 conf
NAFIPS
Fernando Monroy-Tenorio, Ildar Z. Batyrshin, Alexander F. Gelbukh, Valery D. Solovyev, Nailya I. Kubysheva, Imre J. Rudas
2017 J jnl
CoRR
Valery D. Solovyev, Vladimir V. Bochkarev, Anna V. Shevlyakova
2016 J jnl
Comput. Intell. Neurosci.
Valery D. Solovyev, Vladimir Ivanov
2016 J jnl
Neurocomputing
Ildar Z. Batyrshin, Valery D. Solovyev, Vladimir Ivanov
2016 J jnl
Computación y Sistemas
Ildar Z. Batyrshin, Nailya I. Kubysheva, Valery D. Solovyev, Luis A. Villa-Vargas
2015 conf
NAFIPS/WConSC
Ildar Z. Batyrshin, Luis A. Villa Vargas, Valery D. Solovyev
2015 conf
SmartCity
Valery D. Solovyev, Vladimir V. Bochkarev, A. D. Kaveeva
2014 conf
TSD
Valery D. Solovyev, Vladimir Ivanov
2014 J jnl
CoRR
Valery D. Solovyev, Vladimir V. Bochkarev
2014 J jnl
CoRR
Alexander M. Elizarov, Alexander Kirillovich, Evgeny K. Lipachev, Olga Nevzorova, Valery D. Solovyev, Nikita Zhiltsov
2014 conf
MCPR
Ildar Z. Batyrshin, Valery D. Solovyev
2014 conf
ICIST
Valery D. Solovyev, Renat Faskhutdinov, Venera Bayrasheva
2013 J jnl
Res. Comput. Sci.
Valery D. Solovyev, Vladimir Polyakov, Vladimir Ivanov, Ivan Anisimov, Andrey Ponomarev
2013 conf
MICAI (1)
Valery D. Solovyev, Vladimir Ivanov
2013 conf
CICLing (1)
Rinat Gareev, Maksim Tkatchenko, Valery D. Solovyev, Andrey Simanovsky, Vladimir Ivanov
2012 J jnl
CoRR
Vladimir V. Bochkarev, Anna V. Shevlyakova, Valery D. Solovyev
2011 conf
WIMS
Valery D. Solovyev, Nikita Zhiltsov
2003 conf
MLMTA
Valery D. Solovyev
1999 Misc conf
ICCS
Valery D. Solovyev
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)