Esempio n. 1
0
def jump_to_from(is_to, base, remote_base, to=None):
    rv = rpc.JumpToFromResult()
    ptrdiff = 0
    if base != remote_base:
        ptrdiff = remote_base - base
    if is_to:
        v = int(to + ptrdiff)
        result = api.Gui_Disassembly_SelectionSet(v, v)
        api.GuiDisasmAt(v, 0)
        rv.result = rpc.JumpToFromResult.JR_OK if result else rpc.JumpToFromResult.JR_FAILED
        return rv

    va = int(api.Gui_Disassembly_SelectionGetStart())
    if va:
        rv.va = va - ptrdiff
        rv.result = rpc.JumpToFromResult.JR_OK
    else:
        rv.result = rpc.JumpToFromResult.JR_FAILED

    return rv
Esempio n. 2
0
def jump_to_from(is_to, base, remote_base, to=None):
    rv = rpc.JumpToFromResult()
    ptrdiff = 0
    if base != remote_base:
        ptrdiff = remote_base - base
    if is_to:
        api.Setcpu(
            0, int(to + ptrdiff), 0, 0, 0, api.CPU_ASMHIST | api.CPU_ASMCENTER
            | api.CPU_ASMFOCUS | api.CPU_REDRAW)
        rv.result = rpc.JumpToFromResult.JR_OK
        return rv

    dmp = api.Getcpudisasmdump()
    va = int(dmp.sel0)
    if va:
        rv.va = va - ptrdiff
        rv.result = rpc.JumpToFromResult.JR_OK
    else:
        rv.result = rpc.JumpToFromResult.JR_FAILED

    return rv