K. V. Arya

93 papers B 1C 2Misc 1Journal 53Unranked 35
YearRankTypeTitle / Venue / Authors
2025 J jnl
Expert Syst. J. Knowl. Eng.
Saurabh Agarwal, K. V. Arya
2025 J jnl
J. Comput. Des. Eng.
Somay, Vijay Kumar Bohat, Vinay Khorwal, Fatma A. Hashim, Amal Khalifa Alkhalifa, K. V. Arya, Ram Kishan Dewangan
2025 J jnl
Expert Syst. Appl.
Anurag Singh Tomar, K. V. Arya, Shyam Singh Rajput
2025 J jnl
Soft Comput.
Nikhil Sharma, Rajanbir Singh Ghumaan, Prateek Jeet Singh Sohi, Bharat Garg, K. V. Arya
2024 J jnl
IEEE Trans. Medical Imaging
Saurabh Agarwal, K. V. Arya, Yogesh Kumar Meena
2024 conf
CVMI
Abha Pathak, Vivek Tiwari, K. V. Arya
2024 J jnl
CoRR
Saurabh Agarwal, K. V. Arya, Yogesh Kumar Meena
2024 J jnl
Soft Comput.
Saurabh Agarwal, K. V. Arya, Yogesh Kumar Meena
2023 conf
CVMI
Deepak Rai, Shyam Singh Rajput, K. V. Arya, Prince Pranav, Shikha Singh, Aditi Sinha
2023 J jnl
Pattern Recognit. Lett.
Anurag Singh Tomar, K. V. Arya, Shyam Singh Rajput
2023 J jnl
IEEE Trans. Instrum. Meas.
Anurag Singh Tomar, K. V. Arya, Shyam Singh Rajput
2023 J jnl
SN Comput. Sci.
Utkarsh Sharma, Kazi Newaj Faisal, Rishi Raj Sharma, K. V. Arya
2023 conf
CVMI
Anand Verma, Saurabh Agarwal, K. V. Arya, Ivan Petrlik, Roberto Esparza, Ciro Rodriguez
2023 J jnl
Multim. Tools Appl.
Yogesh Kumar Meena, K. V. Arya
2023 J jnl
Multim. Tools Appl.
Anurag Singh Tomar, K. V. Arya, Shyam Singh Rajput
2023 conf
CVMI
Devshri Satyarthi, K. V. Arya, Santosh Singh Rathore
2021 J jnl
Multim. Tools Appl.
Nikhil Sharma, Prateek Jeet Singh Sohi, Bharat Garg, K. V. Arya
2021 J jnl
IEEE ACM Trans. Comput. Biol. Bioinform.
Yadunath Pathak, Piyush Kumar Shukla, K. V. Arya
2021 J jnl
Vis. Comput.
Rohit Agarwal, Anand Singh Jalal, K. V. Arya
2021 conf
RTIP2R
K. V. Arya, Suggula Jagadeesh
2020 J jnl
Multim. Tools Appl.
Rohit Agarwal, Anand Singh Jalal, K. V. Arya
2020 J jnl
Multim. Tools Appl.
Nafis Uddin Khan, K. V. Arya
2020 J jnl
Multim. Tools Appl.
Shyam Singh Rajput, K. V. Arya
2020 conf
ICIIS
Deepankar Singh, Mithilesh Kumar, K. V. Arya, Sunil Kumar
2020 J jnl
Wirel. Pers. Commun.
Rohit Agarwal, Anand Singh Jalal, K. V. Arya
2020 conf
VISIGRAPP (4: VISAPP)
Pragati Baheti, Mukul Sikka, K. V. Arya, R. Rajesh
2020 J jnl
Multim. Tools Appl.
Bharat Garg, K. V. Arya
2020 conf
COMAD/CODS
K. V. Arya, Shresth Verma, Raj Kuwar Gupta, Soumya Agarwal, Prince Gupta
2019 ch.
Handbook of Multimedia Information Security
Shailendra Tiwari, Kavkirat Kaur, K. V. Arya
2019 J jnl
Expert Syst. Appl.
Vijay Kumar Bohat, K. V. Arya
2019 J jnl
Multim. Tools Appl.
Shyam Singh Rajput, K. V. Arya
2019 J jnl
Multim. Tools Appl.
Yadunath Pathak, K. V. Arya, Shailendra Tiwari
2019 J jnl
Multim. Tools Appl.
Yadunath Pathak, K. V. Arya, Shailendra Tiwari
2019 J jnl
Appl. Intell.
Shyam Singh Rajput, Vijay Kumar Bohat, K. V. Arya
2019 J jnl
CoRR
Raj Kuwar Gupta, Shresth Verma, K. V. Arya, Soumya Agarwal, Prince Gupta
2019 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Shyam Singh Rajput, K. V. Arya
2018 J jnl
Knowl. Based Syst.
Vijay Kumar Bohat, K. V. Arya
2018 J jnl
Wirel. Pers. Commun.
Mishra Pragya, K. V. Arya, Hardev Singh Pal
2018 J jnl
Signal Process.
Shyam Singh Rajput, Ankur Singh, K. V. Arya, Junjun Jiang
2018 J jnl
Inf. Sci.
Shyam Singh Rajput, K. V. Arya, Vinay Singh
2018 J jnl
Multim. Tools Appl.
Nafis Uddin Khan, K. V. Arya
2017 J jnl
Inf. Secur. J. A Glob. Perspect.
Yugarshi Shashwat, Prashant Pandey, K. V. Arya, Smit Kumar
2016 conf
CVIP (1)
Shailendra Tiwari, Rajeev Srivastava, K. V. Arya
2016 conf
ICIIS
K. V. Arya, Gaurangi Upadhyay, Shambhavi Upadhyay, Shailendra Tiwari, Poonam Sharma
2016 conf
ICIIS
Chakrapani Bhardwaj, Rishi Raj Sharma, K. V. Arya
2016 J jnl
Int. J. Syst. Sci.
Harish Sharma, Jagdish Chand Bansal, K. V. Arya, Xin-She Yang
2016 conf
ICIIS
Rishi Raj Sharma, K. V. Arya
2016 C conf
DeSE
K. V. Arya, Yadunath Pathak, Shailendra Tiwari
2014 J jnl
Multim. Tools Appl.
Nafis Uddin Khan, K. V. Arya, Manisha Pattanaik
2014 J jnl
Medical Biol. Eng. Comput.
Mukesh Saraswat, K. V. Arya
2014 J jnl
Int. J. Artif. Intell. Soft Comput.
Rohit Katiyar, Vinay Kumar Pathak, K. V. Arya
2014 J jnl
Int. J. Artif. Intell. Soft Comput.
Harish Sharma, Jagdish Chand Bansal, K. V. Arya
2014 J jnl
J. Comput. Sci.
Harish Sharma, Jagdish Chand Bansal, K. V. Arya
2014 J jnl
Eng. Appl. Artif. Intell.
Mukesh Saraswat, K. V. Arya
2013 conf
NCVPRIPG
K. V. Arya, Purnima Prasad
2013 conf
IC3
Varsha Sarawagi, K. V. Arya
2013 J jnl
Int. J. Artif. Intell. Soft Comput.
Jagdish Chand Bansal, Harish Sharma, Atulya Nagar, K. V. Arya
2013 J jnl
Comput. methods Biomech. Biomed. Eng. Imaging Vis.
Mukesh Saraswat, K. V. Arya
2013 J jnl
Signal Process.
Poonam Sharma, K. V. Arya, Ram Narayan Yadav
2013 J jnl
Signal Process.
Nafis Uddin Khan, K. V. Arya, Manisha Pattanaik
2013 J jnl
Swarm Evol. Comput.
Mukesh Saraswat, K. V. Arya, Harish Sharma
2013 conf
SEMCCO (1)
Harish Sharma, Shimpi Singh Jadon, Jagdish Chand Bansal, K. V. Arya
2013 J jnl
Soft Comput.
Jagdish Chand Bansal, Harish Sharma, K. V. Arya, Atulya Nagar
2013 J jnl
Memetic Comput.
Harish Sharma, Jagdish Chand Bansal, K. V. Arya
2013 J jnl
Int. J. Comput. Intell. Stud.
Harish Sharma, Jagdish Chand Bansal, K. V. Arya
2012 C conf
SIN
K. V. Arya, Hemant Kumar
2012 conf
BIC-TA (1)
Meenakshi, Durga Puja, Mukesh Saraswat, K. V. Arya
2012 conf
BIC-TA (1)
Dinesh Tiwari, K. V. Arya, Mukesh Saraswat
2012 conf
BIC-TA (1)
Harish Sharma, Jagdish Chand Bansal, K. V. Arya
2012 J jnl
Int. J. Appl. Evol. Comput.
Harish Sharma, Jagdish Chand Bansal, K. V. Arya, Kusum Deep
2012 J jnl
J. Information Security
Usha Banerjee, Gaurav Batra, K. V. Arya
2012 J jnl
Memetic Comput.
Harish Sharma, Jagdish Chand Bansal, K. V. Arya
2012 conf
ICVGIP
Nafis Uddin Khan, K. V. Arya, Manisha Pattanaik
2012 conf
BIC-TA (1)
Mukesh Saraswat, K. V. Arya
2012 conf
SECURIT
Usha Banerjee, K. V. Arya, Geetika Gupta, Sakshi Sharma
2012 conf
SocProS
Rohit Katiyar, K. V. Arya, Vinay Kumar Pathak
2011 conf
SocProS (2)
Nafis Uddin Khan, K. V. Arya, Manisha Pattanaik
2011 conf
IP&C
K. V. Arya, Lovelesh Saxena, Anuj Tewari
2011 conf
IICAI
K. V. Arya, Krishan Pal
2011 conf
SocProS (2)
Mukesh Saraswat, K. V. Arya
2011 conf
SocProS (1)
Harish Sharma, Jagdish Chand Bansal, K. V. Arya
2011 conf
SocProS (2)
Poonam Sharma, K. V. Arya, Ram Narayan Yadav
2011 conf
SocProS (2)
K. V. Arya, Saurabh Singh
2011 conf
NICSO
Jagdish Chand Bansal, Harish Sharma, K. V. Arya
2011 conf
DICTAP (1)
K. V. Arya, Prerna Vashistha, Vaibhav Gupta
2010 B conf
SMC
Nafis Uddin Khan, K. V. Arya, Manisha Pattanaik
2010 conf
NaBIC
Yogesh Kumar Meena, K. V. Arya, Rahul Kala
2010 conf
IPCV
Karishma Chawla, Veena Bansal, K. V. Arya, Anupam Shukla
2009 J jnl
CoRR
Mano Yadav, Vinay Rishiwal, K. V. Arya
2008 conf
ICETET
Vinay Rishiwal, Mano Yadav, K. V. Arya
2008 conf
ICIIS
Vinay Rishiwal, Hirdesh Kumar, K. V. Arya, Mano Yadav
2006 Misc conf
SAC
R. Lokhande, K. V. Arya, P. Gupta
2005 J jnl
J. Interconnect. Networks
K. V. Arya, R. K. Ghosh
tests/unit/conftest_binja_stubs.py
← Index tests/unit/conftest_binja_stubs.py python
"""Stubs for binaryninja module so decompiler unit tests can import
without a Binary Ninja license."""

import sys
from unittest.mock import MagicMock
from enum import IntEnum


# Stub binaryninja.enums
class BranchType(IntEnum):
    UnconditionalBranch = 0
    FalseBranch = 1
    TrueBranch = 2
    CallDestination = 3
    FunctionReturn = 4
    SystemCall = 5
    IndirectBranch = 6
    ExceptionBranch = 7
    UnresolvedBranch = 8
    UserDefinedBranch = 9


class InstructionTextTokenType(IntEnum):
    TextToken = 0
    InstructionToken = 1
    RegisterToken = 2
    IntegerToken = 3
    PossibleAddressToken = 4
    BeginMemoryOperandToken = 10
    EndMemoryOperandToken = 11
    FloatingPointToken = 12
    AnnotationToken = 13
    CodeRelativeAddressToken = 14
    ArgumentNameToken = 15
    HexDumpByteValueToken = 16
    HexDumpSkippedByteToken = 17
    HexDumpInvalidByteToken = 18
    HexDumpTextToken = 19
    OpcodeToken = 20
    StringToken = 21
    CharacterConstantToken = 22
    KeywordToken = 23
    TypeNameToken = 24
    FieldNameToken = 25
    NameSpaceToken = 26
    NameSpaceSeparatorToken = 27
    TagToken = 28
    StructOffsetToken = 29
    StructOffsetByteValueToken = 30
    StructureHexDumpTextToken = 31
    GotoLabelToken = 32
    CommentToken = 33
    PossibleValueToken = 34
    PossibleValueTypeToken = 35
    ArrayIndexToken = 36
    IndentationToken = 37
    UnknownMemoryToken = 38
    EnumerationMemberToken = 39
    OperationToken = 40
    BaseStructureOffsetToken = 41
    BaseStructureSeparatorToken = 42
    BraceToken = 43
    PlainTextToken = 44
    CollapsedInformationToken = 45


class SymbolType(IntEnum):
    FunctionSymbol = 0
    ImportAddressSymbol = 1
    ImportedFunctionSymbol = 2
    DataSymbol = 3
    ImportedDataSymbol = 4
    ExternalSymbol = 5
    LibraryFunctionSymbol = 6
    SymbolicFunctionSymbol = 7
    LocalLabelSymbol = 8


class HighLevelILOperation(IntEnum):
    HLIL_NOP = 0
    HLIL_ADD = 1
    HLIL_SUB = 2
    HLIL_MUL = 3
    HLIL_DIVS = 4
    HLIL_NEG = 5
    HLIL_NOT = 6
    HLIL_AND = 7
    HLIL_OR = 8
    HLIL_XOR = 9
    HLIL_LSR = 10
    HLIL_LSL = 11
    HLIL_MODS = 12
    HLIL_IF = 13
    HLIL_GOTO = 14
    HLIL_RET = 15
    HLIL_ASSIGN = 16
    HLIL_CALL = 17
    HLIL_VAR = 18
    HLIL_CONST = 19
    HLIL_BLOCK = 20


class LowLevelILOperation(IntEnum):
    LLIL_NOP = 0
    LLIL_SET_REG = 1
    LLIL_SET_REG_SPLIT = 2
    LLIL_SET_FLAG = 3
    LLIL_LOAD = 4
    LLIL_STORE = 5
    LLIL_PUSH = 6
    LLIL_POP = 7
    LLIL_REG = 8
    LLIL_CONST = 9
    LLIL_CONST_PTR = 10
    LLIL_FLAG = 11
    LLIL_FLAG_BIT = 12
    LLIL_ADD = 13
    LLIL_ADC = 14
    LLIL_SUB = 15
    LLIL_SBB = 16
    LLIL_AND = 17
    LLIL_OR = 18
    LLIL_XOR = 19
    LLIL_LSL = 20
    LLIL_LSR = 21
    LLIL_ASR = 22
    LLIL_ROL = 23
    LLIL_RLC = 24
    LLIL_ROR = 25
    LLIL_RRC = 26
    LLIL_MUL = 27
    LLIL_MULU_DP = 28
    LLIL_MULS_DP = 29
    LLIL_DIVU = 30
    LLIL_DIVU_DP = 31
    LLIL_DIVS = 32
    LLIL_DIVS_DP = 33
    LLIL_MODU = 34
    LLIL_MODS = 35
    LLIL_NEG = 36
    LLIL_NOT = 37
    LLIL_SX = 38
    LLIL_ZX = 39
    LLIL_LOW_PART = 40
    LLIL_JUMP = 41
    LLIL_JUMP_TO = 42
    LLIL_CALL = 43
    LLIL_CALL_SSA = 44
    LLIL_RET = 45
    LLIL_NORET = 46
    LLIL_IF = 47
    LLIL_GOTO = 48
    LLIL_FLAG_COND = 49
    LLIL_CMP_E = 50
    LLIL_CMP_NE = 51
    LLIL_CMP_SLT = 52
    LLIL_CMP_ULT = 53
    LLIL_CMP_SLE = 54
    LLIL_CMP_ULE = 55
    LLIL_CMP_SGE = 56
    LLIL_CMP_UGE = 57
    LLIL_CMP_SGT = 58
    LLIL_CMP_UGT = 59
    LLIL_TEST_BIT = 60
    LLIL_BOOL_TO_INT = 61
    LLIL_TAILCALL = 62
    LLIL_SYSCALL = 63
    LLIL_BP = 64
    LLIL_TRAP = 65
    LLIL_UNDEF = 66
    LLIL_UNIMPL = 67
    LLIL_UNIMPL_MEM = 68


class AnalysisState(IntEnum):
    IdleState = 0
    DisassembleState = 1
    AnalyzeState = 2


def install_binja_stubs():
    """Install binaryninja module stubs into sys.modules.
    Call this BEFORE importing any decompiler modules.
    Idempotent — returns the existing mock if already installed.
    """
    if "binaryninja" in sys.modules and not isinstance(sys.modules["binaryninja"], MagicMock):
        return sys.modules["binaryninja"]
    if "binaryninja" in sys.modules and hasattr(sys.modules["binaryninja"], "_redb_stub"):
        return sys.modules["binaryninja"]

    # Create the main mock
    bn_mock = MagicMock()
    bn_mock._redb_stub = True

    # Wire up enums as real enums (not mocks)
    enums_mod = MagicMock()
    enums_mod.BranchType = BranchType
    enums_mod.InstructionTextTokenType = InstructionTextTokenType
    enums_mod.SymbolType = SymbolType
    enums_mod.HighLevelILOperation = HighLevelILOperation
    enums_mod.LowLevelILOperation = LowLevelILOperation
    enums_mod.AnalysisState = AnalysisState

    bn_mock.enums = enums_mod
    bn_mock.enums.BranchType = BranchType
    bn_mock.enums.InstructionTextTokenType = InstructionTextTokenType
    bn_mock.enums.SymbolType = SymbolType
    bn_mock.enums.HighLevelILOperation = HighLevelILOperation
    bn_mock.enums.LowLevelILOperation = LowLevelILOperation
    bn_mock.enums.AnalysisState = AnalysisState

    # LowLevelILOperation on the top-level module
    bn_mock.LowLevelILOperation = LowLevelILOperation
    bn_mock.LowLevelILInstruction = MagicMock

    # highlevelil sub-module
    hlil_mod = MagicMock()
    hlil_mod.HighLevelILInstruction = type("HighLevelILInstruction", (), {})
    bn_mock.highlevelil = hlil_mod

    # lowlevelil sub-module
    llil_mod = MagicMock()
    llil_mod.LowLevelILAdd = type("LowLevelILAdd", (), {})
    llil_mod.LowLevelILConst = type("LowLevelILConst", (), {})
    llil_mod.LowLevelILConstPtr = type("LowLevelILConstPtr", (), {})
    llil_mod.LowLevelILLoad = type("LowLevelILLoad", (), {})
    llil_mod.LowLevelILLsl = type("LowLevelILLsl", (), {})
    llil_mod.LowLevelILMul = type("LowLevelILMul", (), {})
    llil_mod.LowLevelILPop = type("LowLevelILPop", (), {})
    llil_mod.LowLevelILPush = type("LowLevelILPush", (), {})
    llil_mod.LowLevelILReg = type("LowLevelILReg", (), {})
    llil_mod.LowLevelILStore = type("LowLevelILStore", (), {})
    llil_mod.LowLevelILSub = type("LowLevelILSub", (), {})
    bn_mock.lowlevelil = llil_mod

    # mediumlevelil sub-module
    mlil_mod = MagicMock()
    mlil_mod.MediumLevelILConst = type("MediumLevelILConst", (), {})
    mlil_mod.MediumLevelILConstPtr = type("MediumLevelILConstPtr", (), {})
    bn_mock.mediumlevelil = mlil_mod

    sys.modules["binaryninja"] = bn_mock
    sys.modules["binaryninja.enums"] = enums_mod
    sys.modules["binaryninja.lowlevelil"] = llil_mod
    sys.modules["binaryninja.highlevelil"] = hlil_mod
    sys.modules["binaryninja.mediumlevelil"] = mlil_mod

    return bn_mock


# ============================================================================
# Mock Factories
# ============================================================================

class MockToken:
    """Mock for instruction text tokens."""
    def __init__(self, text, token_type=None):
        self.text = text
        if token_type is None:
            self.type = InstructionTextTokenType.TextToken
        else:
            self.type = token_type

    def __str__(self):
        return self.text


class MockDisassemblyLine:
    """Mock for a disassembly text line."""
    def __init__(self, tokens=None):
        self.tokens = tokens or []

    def __str__(self):
        return "".join(t.text for t in self.tokens)


class MockEdge:
    """Mock for a basic block edge."""
    def __init__(self, source=None, target=None, edge_type=None):
        self.source = source
        self.target = target
        self.type = edge_type


class MockBasicBlock:
    """Mock for a basic block."""
    def __init__(
        self,
        start=0,
        end=0,
        disassembly_text=None,
        outgoing_edges=None,
        incoming_edges=None,
        dominators=None,
        post_dominators=None,
        dominance_frontier=None,
        dominator_tree_children=None,
        instruction_count=None,
    ):
        self.start = start
        self.end = end
        self.disassembly_text = disassembly_text or []
        self.outgoing_edges = outgoing_edges or []
        self.incoming_edges = incoming_edges or []
        self.dominators = dominators if dominators is not None else [self]
        self.post_dominators = post_dominators if post_dominators is not None else [self]
        self.dominance_frontier = dominance_frontier if dominance_frontier is not None else set()
        self.dominator_tree_children = dominator_tree_children or []
        self.instruction_count = instruction_count if instruction_count is not None else len(self.disassembly_text)

    def __iter__(self):
        return iter(self.disassembly_text)


class MockFunction:
    """Mock for a Binary Ninja function."""
    def __init__(
        self,
        name="sub_1000",
        start=0x1000,
        basic_blocks=None,
        instructions=None,
        hlil=None,
        llil=None,
        mlil=None,
        symbol=None,
        is_thunk=False,
        stack_adjustment=0,
        call_sites=None,
        caller_sites=None,
        low_level_il=None,
    ):
        self.name = name
        self.start = start
        self.basic_blocks = basic_blocks or []
        self._instructions = instructions or []
        self.hlil = hlil
        self.llil = llil
        self.mlil = mlil
        self.symbol = symbol
        self.is_thunk = is_thunk
        self.stack_adjustment = stack_adjustment
        self.call_sites = call_sites or []
        self.caller_sites = caller_sites or []
        self.low_level_il = low_level_il

    @property
    def instructions(self):
        return iter(self._instructions)

    def get_basic_block_at(self, addr):
        for bb in self.basic_blocks:
            if bb.start <= addr < bb.end or bb.start == addr:
                return bb
        return self.basic_blocks[0] if self.basic_blocks else None

    def get_regs_read_by(self, addr, arch):
        return []

    def get_regs_written_by(self, addr, arch):
        return []

    def __str__(self):
        return f"uint64_t {self.name}()"


class MockBinaryView:
    """Mock for a Binary Ninja binary view."""
    def __init__(
        self,
        functions=None,
        strings=None,
        arch=None,
    ):
        self.functions = functions or []
        self.strings = strings or []
        self.arch = arch

    def get_segment_at(self, addr):
        return None

    def get_section_at(self, addr):
        return None

    def get_symbol_at(self, addr):
        return None

    def get_functions_at(self, addr):
        return []

    def get_string_at(self, addr):
        return None

    def get_data_var_at(self, addr):
        return None


class MockSymbol:
    """Mock for a Binary Ninja symbol."""
    def __init__(self, symbol_type=None, name="unknown"):
        self.type = symbol_type if symbol_type is not None else SymbolType.FunctionSymbol
        self.name = name
        self.full_name = name


class MockILInstruction:
    """Mock for an IL instruction (LLIL/HLIL)."""
    def __init__(self, operation, operands=None, address=0):
        self.operation = operation
        self.operands = operands or []
        self.address = address


class MockStringEntry:
    """Mock for a Binary Ninja string reference."""
    def __init__(self, value, raw=None, start=0, length=0, string_type=None):
        self.value = value
        self.raw = raw if raw is not None else value.encode("utf-8") if isinstance(value, str) else value
        self.start = start
        self.length = length if length else len(self.raw)
        self.type = string_type or MockStringType("Utf8String")


class MockStringType:
    """Mock for string type."""
    def __init__(self, name="Utf8String"):
        self.name = name