Toggle Light / Dark / Auto color theme
Toggle table of contents sidebar
Source code for angr.storage.memory_mixins.paged_memory.pages.permissions_mixin
import claripy
from angr.storage.memory_mixins import MemoryMixin
[docs]
class PermissionsMixin ( MemoryMixin ):
"""
This mixin adds a permissions field and properties for extracting the read/write/exec permissions. It does NOT add
permissions checking.
"""
[docs]
def __init__ ( self , permissions = None , ** kwargs ):
super () . __init__ ( ** kwargs )
if type ( permissions ) is int :
permissions = claripy . BVV ( permissions , 3 )
self . permissions = permissions
[docs]
def copy ( self , memo ):
o = super () . copy ( memo )
o . permissions = self . permissions
return o
@property
def perm_read ( self ):
return self . permissions & 1
@property
def perm_write ( self ):
return self . permissions & 2
@property
def perm_exec ( self ):
return self . permissions & 4