def activate(self, ctx): addr = getRefAddr() if addr is None: highlighted = idaversion.getHighlight() addr = getHex(highlighted) ''' if regFu.isHighlightedEffective(): addr = regFu.getOffset() else: highlighted = idaversion.getHighlight() addr = getHex(highlighted) ''' sas = setAddrValue.SetAddrValue() sas.Compile() sas.iAddr.value = addr sas.iOffset.value = 0 sas.iRawHex.value = idaversion.get_wide_dword(sas.iAddr.value) ok = sas.Execute() if ok != 1: return val = sas.iRawHex.value addr = sas.iAddr.value offset = sas.iOffset.value new_addr = addr+offset simicsString = gdbProt.Evalx('SendGDBMonitor("@cgc.writeWord(0x%x, 0x%x)");' % (new_addr, val)) time.sleep(2) self.isim.updateBookmarkView() self.isim.updateDataWatch() idaversion.refresh_debugger_memory() idaversion.refresh_idaview_anyway() idaversion.refresh_choosers() print('Bookmarks cleared -- select origin bookmark to return to this cycle') print('Note: data watches previous to this point are retained, but associated bookmarks are deleted')
def activate(self, ctx): if regFu.isHighlightedEffective(): addr = regFu.getOffset() else: highlighted = idaversion.getHighlight() addr = getHex(highlighted) if addr is None: print('ModMemoryHandler unable to parse hex from %s' % highlighted) return sas = setAddrString.SetAddrString() sas.Compile() sas.iAddr.value = addr val = '' for i in range(8): c = idaversion.get_wide_byte(addr + i) if c >= 0x20 and c <= 0x7e: val = val + chr(c) else: val = val + '.' sas.iStr1.value = val ok = sas.Execute() if ok != 1: return self.last_data_mem_set = sas.iStr1.value #sparm = "'%s'" % sas.iStr1.value sparm = "'%s'" % str(sas.iStr1.value).strip() dog = 'SendGDBMonitor("@cgc.writeString(0x%x, %s)");' % ( sas.iAddr.value, sparm) print('dog is <%s>' % dog) simicsString = gdbProt.Evalx( 'SendGDBMonitor("@cgc.writeString(0x%x, %s)");' % (sas.iAddr.value, sparm)) time.sleep(2) self.isim.updateBookmarkView() self.isim.updateDataWatch() idaversion.refresh_debugger_memory() idaversion.refresh_idaview_anyway() idaversion.refresh_choosers() print( 'Bookmarks cleared -- select origin bookmark to return to this cycle' ) print( 'Note: data watches previous to this point are retained, but associated bookmarks are deleted' )