MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / define_data_var

Method define_data_var

python/binaryview.py:4959–4990  ·  view source on GitHub ↗

``define_data_var`` defines a non-user data variable ``var_type`` at the virtual address ``addr``. :param int addr: virtual address to define the given data variable :param StringOrType var_type: type to be defined at the given virtual address :param Optional[Union[str, '_types.CoreSymbol'

(
	    self, addr: int, var_type: StringOrType, name: Optional[Union[str, '_types.CoreSymbol']] = None
	)

Source from the content-addressed store, hash-verified

4957 core.BNAbortAnalysis(self.handle)
4958
4959 def define_data_var(
4960 self, addr: int, var_type: StringOrType, name: Optional[Union[str, '_types.CoreSymbol']] = None
4961 ) -> None:
4962 """
4963 ``define_data_var`` defines a non-user data variable ``var_type`` at the virtual address ``addr``.
4964
4965 :param int addr: virtual address to define the given data variable
4966 :param StringOrType var_type: type to be defined at the given virtual address
4967 :param Optional[Union[str, '_types.CoreSymbol']] name: Optionally additionally define a symbol at this location
4968 :rtype: None
4969 :Example:
4970
4971 >>> t = bv.parse_type_string("int foo")
4972 >>> t
4973 (<type: int32_t>, 'foo')
4974 >>> bv.define_data_var(bv.entry_point, t[0])
4975 >>> bv.define_data_var(bv.entry_point + 4, "int", "foo")
4976 >>> bv.get_symbol_at(bv.entry_point + 4)
4977 <DataSymbol: "foo" @ 0x23950>
4978 >>> bv.get_data_var_at(bv.entry_point + 4)
4979 <var 0x23950: int32_t>
4980 """
4981
4982 if isinstance(var_type, str):
4983 (var_type, _) = self.parse_type_string(var_type)
4984 tc = var_type._to_core_struct()
4985 core.BNDefineDataVariable(self.handle, addr, tc)
4986
4987 if name is not None:
4988 if isinstance(name, str):
4989 name = _types.Symbol(SymbolType.DataSymbol, addr, name)
4990 self.define_auto_symbol(name)
4991
4992 def define_user_data_var(
4993 self, addr: int, var_type: StringOrType, name: Optional[Union[str, '_types.CoreSymbol']] = None

Callers

nothing calls this directly

Calls 4

parse_type_stringMethod · 0.95
define_auto_symbolMethod · 0.95
SymbolMethod · 0.80
_to_core_structMethod · 0.45

Tested by

no test coverage detected