MCPcopy Create free account
hub / github.com/qilingframework/qiling / read_ptr

Method read_ptr

qiling/os/memory.py:361–381  ·  view source on GitHub ↗

Read an integer value from a memory address. Bytes read will be unpacked using emulated architecture properties. Args: addr: memory address to read size: pointer size (in bytes): either 1, 2, 4, 8, or 0 for arch native size signed: interpret value

(self, addr: int, size: int = 0, *, signed = False)

Source from the content-addressed store, hash-verified

359 return self.ql.uc.mem_read(addr, size)
360
361 def read_ptr(self, addr: int, size: int = 0, *, signed = False) -> int:
362 """Read an integer value from a memory address.
363 Bytes read will be unpacked using emulated architecture properties.
364
365 Args:
366 addr: memory address to read
367 size: pointer size (in bytes): either 1, 2, 4, 8, or 0 for arch native size
368 signed: interpret value as a signed integer (default: False)
369
370 Returns: integer value stored at the specified memory address
371 """
372
373 if not size:
374 size = self.ql.arch.pointersize
375
376 try:
377 _unpack = self._unpackers[(size, signed)]
378 except KeyError:
379 raise QlErrorStructConversion(f"Unsupported pointer size: {size}")
380
381 return _unpack(self.read(addr, size))
382
383 def write(self, addr: int, data: bytes) -> None:
384 """Write bytes to a memory.

Callers 15

stack_popMethod · 0.80
stack_readMethod · 0.80
init_contextMethod · 0.80
interrupt_handlerMethod · 0.80
read_pointerMethod · 0.80
va_listMethod · 0.80
ql_syscall___sysctlFunction · 0.80
__reg_mem_readMethod · 0.80
__RegQueryValueFunction · 0.80
_CryptStringToBinaryFunction · 0.80
hook_ZwRaiseExceptionFunction · 0.80

Calls 2

readMethod · 0.95

Tested by 3

check_printMethod · 0.64
test_read_ptr32Method · 0.64
test_read_ptr64Method · 0.64