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


Python idaapi.MFF_WRITE屬性代碼示例

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


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

示例1: safe_generator

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import MFF_WRITE [as 別名]
def safe_generator(iterator):

    # Make the sentinel value something that isn't likely to be returned
    # by an API call (and isn't a fixed string that could be inserted into
    # a program to break FIRST maliciously)
    sentinel = '[1st] Sentinel %d' % (random.randint(0, 65535))

    holder = [sentinel] # need a holder, because 'global' sucks

    def trampoline():
        try:
            holder[0] = next(iterator)
        except StopIteration:
            holder[0] = sentinel
        return 1

    while True:
        # See notes above regarding why we use MFF_WRITE here
        idaapi.execute_sync(trampoline, idaapi.MFF_WRITE)
        if holder[0] == sentinel:
            return
        yield holder[0]

#   Main Plug-in Form Class
#------------------------------------------------------------------------------- 
開發者ID:vrtadmin,項目名稱:FIRST-plugin-ida,代碼行數:27,代碼來源:first.py

示例2: __getattribute__

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import MFF_WRITE [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

示例3: idawrite

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import MFF_WRITE [as 別名]
def idawrite(f):
    @functools.wraps(f)
    def wrapper(*args, **kwargs):
        ff = functools.partial(f, *args, **kwargs)
        return idaapi.execute_sync(ff, idaapi.MFF_WRITE)
    return wrapper 
開發者ID:andreafioraldi,項目名稱:IDAngr,代碼行數:8,代碼來源:ida_debugger.py

示例4: idawrite

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import MFF_WRITE [as 別名]
def idawrite(f):
    """
    decorator for marking a function as modifying the IDB.
    schedules a request to be made in the main IDA loop to avoid IDB corruption.
    """
    @functools.wraps(f)
    def wrapper(*args,**kwargs):
        ff = functools.partial(f,*args,**kwargs)
        ff.__name__ = f.__name__
        return sync_wrapper(ff,idaapi.MFF_WRITE)
    return wrapper 
開發者ID:xorpd,項目名稱:fcatalog_client,代碼行數:13,代碼來源:idasync.py

示例5: execute_write

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import MFF_WRITE [as 別名]
def execute_write(function):
        return execute_sync(function, idaapi.MFF_WRITE) 
開發者ID:gaasedelen,項目名稱:lighthouse,代碼行數:4,代碼來源:ida_api.py

示例6: reset_block_colors

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import MFF_WRITE [as 別名]
def reset_block_colors(f):
    def fun():
        cbs = sark.codeblocks(start=f.startEA, end=f.endEA)
        for cb in cbs:
            cb.color = 0xFFFFFF
    idaapi.execute_sync(fun, idaapi.MFF_WRITE) 
開發者ID:Riscure,項目名稱:DROP-IDA-plugin,代碼行數:8,代碼來源:helpers.py

示例7: set_block_color

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import MFF_WRITE [as 別名]
def set_block_color(addr, color):
    def fun(addr, color):
        cb = sark.CodeBlock(addr)
        if cb:
            cb.color = color
    idaapi.execute_sync(partial(fun, addr, color), idaapi.MFF_WRITE) 
開發者ID:Riscure,項目名稱:DROP-IDA-plugin,代碼行數:8,代碼來源:helpers.py

示例8: execute_paint

# 需要導入模塊: import idaapi [as 別名]
# 或者: from idaapi import MFF_WRITE [as 別名]
def execute_paint(function):
    """
    A function decorator to safely paint the IDA database from any thread.
    """

    @functools.wraps(function)
    def wrapper(*args, **kwargs):

        #
        # the first argument passed to this decorator will be the
        # IDAPainter class instance
        #

        ida_painter = args[0]

        #
        # we wrap up the remaining args (and paint function) into a single
        # packaged up callable object (a functools.partial)
        #

        ff = functools.partial(function, *args, **kwargs)

        #
        # if we are using a 'bugged' downlevel version of IDA, package another
        # callable to 'synchronize' a database write. This callable will get
        # passed to the main thread and executed through the Qt event loop.
        #
        # the execute_sync should technically happy in-line, avoiding the
        # possibility of deadlocks or aborts as described above.
        #

        if idaapi.IDA_SDK_VERSION < 710:
            fff = functools.partial(idaapi.execute_sync, ff, idaapi.MFF_WRITE)
            ida_painter._signal.mainthread.emit(fff)
            return idaapi.BADADDR

        #
        # in IDA 7.1, the MFF_NOWAIT bug is definitely fixed, so we can just
        # use it to schedule our paint action ... as designed.
        #

        return idaapi.execute_sync(ff, idaapi.MFF_NOWAIT | idaapi.MFF_WRITE)
    return wrapper

#------------------------------------------------------------------------------
# IDA Painter
#------------------------------------------------------------------------------ 
開發者ID:gaasedelen,項目名稱:lighthouse,代碼行數:49,代碼來源:ida_painter.py


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