當前位置: 首頁>>代碼示例>>Python>>正文


Python idaapi.IDA_SDK_VERSION屬性代碼示例

本文整理匯總了Python中idaapi.IDA_SDK_VERSION屬性的典型用法代碼示例。如果您正苦於以下問題:Python idaapi.IDA_SDK_VERSION屬性的具體用法?Python idaapi.IDA_SDK_VERSION怎麽用?Python idaapi.IDA_SDK_VERSION使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在idaapi的用法示例。


在下文中一共展示了idaapi.IDA_SDK_VERSION屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: is_32bit

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def is_32bit():
            '''Returns if the sample is 32bit or not.

            Returns:
                bool: True is 32bit or False.
            '''
            if (idaapi.IDA_SDK_VERSION < 730):
                info = IDAW.get_inf_structure()
                if info.is_64bit():
                    return False
                elif info.is_32bit():
                    return True

                return False
            else:
                return IDAW.inf_is_32bit() 
開發者ID:vrtadmin,項目名稱:FIRST-plugin-ida,代碼行數:18,代碼來源:first.py

示例2: OnSelectLine

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def OnSelectLine(self, n):

		item = self.items[n]

		jump_ea = int(item[0], 16)
		# Only jump for valid addresses
		if idaapi.IDA_SDK_VERSION < 700:
			valid_addr = idc.isEnabled(jump_ea)
		else:
			valid_addr = idc.is_mapped(jump_ea)
		if valid_addr:
			idc.Jump(jump_ea) 
開發者ID:FSecureLABS,項目名稱:win_driver_plugin,代碼行數:14,代碼來源:create_tab_table.py

示例3: __getattribute__

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def __getattribute__(self, name):
        default = '[1st] default'

        if (idaapi.IDA_SDK_VERSION >= 700) and (name in IDAWrapper.mapping):
            name = IDAWrapper.mapping[name]

        val = getattr(idaapi, name, default)
        if val == default:
            val = getattr(idautils, name, default)

        if val == default:
            val = getattr(idc, name, default)

        if val == default:
            msg = 'Unable to find {}'.format(name)
            idaapi.execute_ui_requests((FIRSTUI.Requests.Print(msg),))
            return

        if hasattr(val, '__call__'):
            def call(*args, **kwargs):
                holder = [None] # need a holder, because 'global' sucks

                def trampoline():
                    holder[0] = val(*args, **kwargs)
                    return 1

                # Execute the request using MFF_WRITE, which should be safe for
                # any possible request at the expense of speed.  In my testing,
                # though, it wasn't noticably slower than MFF_FAST.  If this
                # is observed to impact performance, consider creating a list
                # that maps API calls to the most appropriate flag.
                idaapi.execute_sync(trampoline, idaapi.MFF_WRITE)
                return holder[0]
            return call

        else:
            return val 
開發者ID:vrtadmin,項目名稱:FIRST-plugin-ida,代碼行數:39,代碼來源:first.py

示例4: get_architecture

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def get_architecture():
            '''Returns the architecture the sample is built for.

            The values are normalized for the FIRST server. It altered then
            FIRST will not match on other functions with the same architecture.

            Returns:
                str. String representation of the architecture associated with
                    the sample. Examples: intel32, intel64, arm32, mips, etc.
            '''
            info = IDAW.get_inf_structure()
            proc = info.procName.lower()
            proc = FIRST.Info.processor_map.get(proc, proc)

            if proc in FIRST.Info.include_bits:
                bits = 16
                if (idaapi.IDA_SDK_VERSION < 730):
                    if info.is_64bit():
                        bits = 64
                    elif info.is_32bit():
                        bits = 32
                else:
                    if IDAW.inf_is_64bit():
                        bits = 64
                    elif IDAW.inf_is_32bit():
                        bits = 32

                return '{}{}'.format(proc, bits)

            return proc 
開發者ID:vrtadmin,項目名稱:FIRST-plugin-ida,代碼行數:32,代碼來源:first.py

示例5: _cancel_action

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def _cancel_action(self, job_id):
        if idaapi.IDA_SDK_VERSION < 710:
            return
        idaapi.cancel_exec_request(job_id)

    #------------------------------------------------------------------------------
    # Painting - HexRays (Decompilation / Source)
    #------------------------------------------------------------------------------ 
開發者ID:gaasedelen,項目名稱:lighthouse,代碼行數:10,代碼來源:ida_painter.py

示例6: init

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def init(self):
        NO_HOTKEY = ""
        SETMENU_INS = 0
        NO_ARGS = tuple()

        logger.debug("[+] %s.init()" % self.__class__.__name__)
        self.menuitems = []

        logger.debug("[+] setting up menus for ida version %s" % idaapi.IDA_SDK_VERSION)

        if idaapi.IDA_SDK_VERSION >= 700:
            # >= 700
            action_desc = idaapi.action_desc_t("tintinweb:batchdecompile:load", self.wanted_name, IdaDecompileUiActionHandler(self))
            idaapi.register_action(action_desc)
            idaapi.attach_action_to_menu(''.join(self.wanted_menu), "tintinweb:batchdecompile:load", idaapi.SETMENU_APP)

        else:
            menu = idaapi.add_menu_item(self.wanted_menu[0],
                                        self.wanted_menu[1],
                                        NO_HOTKEY,
                                        SETMENU_INS,
                                        self.menu_config,
                                        NO_ARGS)

            self.menuitems.append(menu)

        return idaapi.PLUGIN_KEEP 
開發者ID:tintinweb,項目名稱:ida-batch_decompile,代碼行數:29,代碼來源:ida_batch_decompile.py

示例7: term

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def term(self):
        logger.debug("[+] %s.term()" % self.__class__.__name__)
        if idaapi.IDA_SDK_VERSION < 700:
            for menu in self.menuitems:
                idaapi.del_menu_item(menu) 
開發者ID:tintinweb,項目名稱:ida-batch_decompile,代碼行數:7,代碼來源:ida_batch_decompile.py

示例8: __init__

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def __init__(self, server, *args, **kwargs):
        self.server = server
        self._version = ("IDA Pro", str(idaapi.IDA_SDK_VERSION))
        return 
開發者ID:gatieme,項目名稱:GdbPlugins,代碼行數:6,代碼來源:ida_gef.py

示例9: __getattribute__

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def __getattribute__(self, name):
        default = '[1st] default'

        if (idaapi.IDA_SDK_VERSION >= 700) and (name in IDAWrapper.mapping):
            name = IDAWrapper.mapping[name]

        val = getattr(idaapi, name, default)
        if val == default:
            val = getattr(idautils, name, default)

        if val == default:
            val = getattr(idc, name, default)

        if val == default:
            msg = 'Unable to find {}'.format(name)
            idaapi.execute_ui_requests((FIRSTUI.Requests.Print(msg),))
            return

        if hasattr(val, '__call__'):
            def call(*args, **kwargs):
                holder = [None] # need a holder, because 'global' sucks

                def trampoline():
                    holder[0] = val(*args, **kwargs)
                    return 1

                idaapi.execute_sync(trampoline, idaapi.MFF_FAST)
                return holder[0]
            return call

        else:
            return val 
開發者ID:Cisco-Talos,項目名稱:CASC,代碼行數:34,代碼來源:casc_plugin.py

示例10: init

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def init(self):
        # register popup menu handlers
        try:
            # Register Auto Fix IDB handler
            VxHunterMCFixIDB.register(self, "Auto Fix IDB With symbol table")
            # Register Fix Code handler
            VxHunterMCFixCode.register(self, "Fix Code from start address to end address")
            # Register Fix Ascii handler
            VxHunterMCFixAscii.register(self, "Fix Ascii string table with giving address")
            # Register Load symbol file handler
            VxHunterMCLoadSymbolFile.register(self, "Load VxWorks symbol file")

        except Exception as err:
            print("Got Error!!!: %s" % err)

        # setup popup menu
        if idaapi.IDA_SDK_VERSION >= 700:
            # Add menu IDA >= 7.0
            idaapi.attach_action_to_menu("Edit/VxHunter/", VxHunterMCFixIDB.get_name(), idaapi.SETMENU_APP)
            idaapi.attach_action_to_menu("Edit/VxHunter/", VxHunterMCFixCode.get_name(), idaapi.SETMENU_APP)
            idaapi.attach_action_to_menu("Edit/VxHunter/", VxHunterMCFixAscii.get_name(), idaapi.SETMENU_APP)
            idaapi.attach_action_to_menu("Edit/VxHunter/", VxHunterMCLoadSymbolFile.get_name(), idaapi.SETMENU_APP)
        else:
            # add Vxhunter menu
            menu = idaapi.add_menu_item("Edit/VxHunter/", "Auto Fix IDB1", "", 1, self.handler_auto_fix_idb, None)
            if menu is not None:
                pass

        print("=" * 80)
        return idaapi.PLUGIN_KEEP 
開發者ID:PAGalaxyLab,項目名稱:vxhunter,代碼行數:32,代碼來源:vxhunter_ida.py

示例11: fix_vxworks_idb

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def fix_vxworks_idb(load_address, vx_version, symbol_table_start, symbol_table_end):
        current_image_base = idaapi.get_imagebase()
        symbol_interval = 16
        if vx_version == 6:
            symbol_interval = 20
        symbol_table_start += load_address
        symbol_table_end += load_address
        ea = symbol_table_start
        shift_address = load_address - current_image_base
        while shift_address >= 0x70000000:
            idaapi.rebase_program(0x70000000, 0x0008)
            shift_address -= 0x70000000
        idaapi.rebase_program(shift_address, 0x0008)
        while ea < symbol_table_end:
            # for VxWorks 6 unknown symbol format
            if idc.Byte(ea + symbol_table_end - 2) == 3:
                ea += symbol_interval
                continue
            offset = 4
            if idaapi.IDA_SDK_VERSION >= 700:
                idc.create_strlit(idc.Dword(ea + offset), idc.BADADDR)
            else:
                idc.MakeStr(idc.Dword(ea + offset), idc.BADADDR)
            sName = idc.GetString(idc.Dword(ea + offset), -1, idc.ASCSTR_C)
            print("Found %s in symbol table" % sName)
            if sName:
                sName_dst = idc.Dword(ea + offset + 4)
                if vx_version == 6:
                    sName_type = idc.Dword(ea + offset + 12)
                else:
                    sName_type = idc.Dword(ea + offset + 8)
                idc.MakeName(sName_dst, sName)
                if sName_type in need_create_function:
                    # flags = idc.GetFlags(ea)
                    print("Start fix Function %s at %s" % (sName, hex(sName_dst)))
                    idc.MakeCode(sName_dst)  # might not need
                    idc.MakeFunction(sName_dst, idc.BADADDR)
            ea += symbol_interval
        print("Fix function by symbol table finish.")
        print("Start IDA auto analysis, depending on the size of the firmware this might take a few minutes.")
        idaapi.autoWait() 
開發者ID:PAGalaxyLab,項目名稱:vxhunter,代碼行數:43,代碼來源:vxhunter_ida.py

示例12: fix_ascii

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def fix_ascii(self, address):
        string_table_start_address = self.get_string_table_start_address(address)
        string_address = string_table_start_address
        while True:
            if string_address:
                print("Start Make string at address: %s" % hex(string_address))
                if idaapi.IDA_SDK_VERSION >= 700:
                    idc.create_strlit(string_address, idc.BADADDR)
                else:
                    idc.MakeStr(string_address, idc.BADADDR)
                string_address = self.get_next_ascii_string_address(string_address)
            else:
                break 
開發者ID:PAGalaxyLab,項目名稱:vxhunter,代碼行數:15,代碼來源:vxhunter_ida.py

示例13: getByte

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def getByte(self, ea):
        if idaapi.IDA_SDK_VERSION < 700:
            return idc.Byte(ea)
        else:
            return idc.get_wide_byte(ea) 
開發者ID:danielplohmann,項目名稱:apiscout,代碼行數:7,代碼來源:IdaProxy.py

示例14: getSegEnd

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def getSegEnd(self, ea):
        if idaapi.IDA_SDK_VERSION < 700:
            return idc.SegEnd(ea)
        else:
            return idc.get_segm_end(ea) 
開發者ID:danielplohmann,項目名稱:apiscout,代碼行數:7,代碼來源:IdaProxy.py

示例15: MakeDWord

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import IDA_SDK_VERSION [as 別名]
def MakeDWord(self, ea):
        if idaapi.IDA_SDK_VERSION < 700:
            return idc.MakeDword(ea)
        else:
            return ida_bytes.create_data(ea, FF_DWORD, 4, idaapi.BADADDR) 
開發者ID:danielplohmann,項目名稱:apiscout,代碼行數:7,代碼來源:IdaProxy.py


注:本文中的idaapi.IDA_SDK_VERSION屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。