def_default_value(self,addr,size,name=None,key=None,inspect=True,events=True,**kwargs):ifo.UNDER_CONSTRAINED_SYMEXECinself.state.optionsandtype(addr)isint:ifself.category=="mem":alloc_depth=self.state.uc_manager.get_alloc_depth(addr)uc_alloc_depth=0ifalloc_depthisNoneelsealloc_depth+1else:uc_alloc_depth=0ifnameisNone:name="mem_%x"%addrbits=size*self.state.arch.byte_widthreturnself.state.solver.Unconstrained(name,bits,key=key,inspect=inspect,events=events,uc_alloc_depth=uc_alloc_depth)returnsuper()._default_value(addr,size,name=name,key=key,inspect=inspect,events=events,**kwargs)def_constrain_underconstrained_index(self,addr):if(o.UNDER_CONSTRAINED_SYMEXECinself.state.optionsandisinstance(addr,claripy.ast.Base)andaddr.uninitializedandaddr.uc_alloc_depthisnotNone):if(notself.state.uc_manager.is_bounded(addr)orself.state.solver.max_int(addr)-self.state.solver.min_int(addr)>=self._unconstrained_range):# in under-constrained symbolic execution, we'll assign a new memory region for this addressmem_region=self.state.uc_manager.assign(addr)# ... but only if it's not already been constrained to something!ifself.state.solver.solution(addr,mem_region):self.state.add_constraints(addr==mem_region)l.debug("Under-constrained symbolic execution: assigned a new memory region @ %s to %s",mem_region,addr)