Esempio n. 1
0
        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')
Esempio n. 2
0
    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'
        )