All Projects → Inndy → idapython-cheatsheet

Inndy / idapython-cheatsheet

Licence: other
scripting IDA like a Pro

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to idapython-cheatsheet

Hyara
Yara rule making tool (IDA Pro & Binary Ninja & Cutter Plugin)
Stars: ✭ 142 (+992.31%)
Mutual labels:  ida, ida-pro, idapython, idapro
Necromancer
IDA Pro V850 Processor Module Extension
Stars: ✭ 21 (+61.54%)
Mutual labels:  ida, ida-pro, idapython
xray
Hexrays decompiler plugin that colorizes and filters the decompiler's output based on regular expressions
Stars: ✭ 97 (+646.15%)
Mutual labels:  ida, ida-pro, idapython
IDAShell
Shell extension for opening executables in IDA
Stars: ✭ 172 (+1223.08%)
Mutual labels:  ida, ida-pro, idapro
Idawasm
IDA Pro loader and processor modules for WebAssembly
Stars: ✭ 264 (+1930.77%)
Mutual labels:  ida, ida-pro, idapython
dynlib
IDA Pro plugin to aid PS4 user mode ELF reverse engineering.
Stars: ✭ 51 (+292.31%)
Mutual labels:  ida, ida-pro, idapro
Ipyida
IPython console integration for IDA Pro
Stars: ✭ 358 (+2653.85%)
Mutual labels:  ida, ida-pro, idapython
Amie
A Minimalist Instruction Extender for the ARM architecture and IDA Pro
Stars: ✭ 136 (+946.15%)
Mutual labels:  ida, ida-pro, idapython
obfDetect
IDA plugin to pinpoint obfuscated code
Stars: ✭ 99 (+661.54%)
Mutual labels:  ida, ida-pro, idapython
Flare Ida
IDA Pro utilities from FLARE team
Stars: ✭ 1,374 (+10469.23%)
Mutual labels:  ida, ida-pro, idapython
Idarling
Collaborative Reverse Engineering plugin for IDA Pro & Hex-Rays
Stars: ✭ 588 (+4423.08%)
Mutual labels:  ida, ida-pro, idapython
Idangr
Use angr in the IDA Pro debugger generating a state from the current debug session
Stars: ✭ 214 (+1546.15%)
Mutual labels:  ida, ida-pro, idapython
Ida For Delphi
IDA Python Script to Get All function names from Event Constructor (VCL)
Stars: ✭ 92 (+607.69%)
Mutual labels:  ida, ida-pro, idapython
Hrdevhelper
Context-sensitive HexRays decompiler plugin that visualizes the ctree of decompiled functions.
Stars: ✭ 193 (+1384.62%)
Mutual labels:  ida, ida-pro, idapython
ida migrator
IDA Migrator is an IDA Pro plugin which helps migrate existing work from one database instance to another. It Conveniently migrates function names, structures and enums.
Stars: ✭ 65 (+400%)
Mutual labels:  ida, ida-pro, idapython
ida-scripts
Collection of IDA Pro/Hex-Rays configs, scripts, and plugins
Stars: ✭ 18 (+38.46%)
Mutual labels:  idapython, idapro
re-scripts
IDA, Ghidra and Radare2 scripts. Also Android scripts to make your life easier.
Stars: ✭ 47 (+261.54%)
Mutual labels:  idapython, idapro
ida2pwntools
a IDA 7.0 plugins that helps to attach process created by pwntools and debug pwn
Stars: ✭ 58 (+346.15%)
Mutual labels:  ida, idapro
DriverBuddyReloaded
Driver Buddy Reloaded is an IDA Pro Python plugin that helps automate some tedious Windows Kernel Drivers reverse engineering tasks
Stars: ✭ 210 (+1515.38%)
Mutual labels:  ida, idapython
idaxex
Xbox360/Xenon loader plugin for IDA 7.2+, and xex1tool, supporting most known Xbox360/Xenon .XEX executable file formats.
Stars: ✭ 48 (+269.23%)
Mutual labels:  ida, ida-pro

Useful Enumeration Functions

Check this: https://github.com/nlitsme/idascripts/blob/master/enumerators.py

Get Current Function Range

curr_range = xrange(GetFunctionAttr(ScreenEA(), FUNCATTR_START), GetFunctionAttr(ScreenEA(), FUNCATTR_END))

Delete Struct

for i in range(999):
    DelStruc(GetStrucIdByName('sc%d' % i))

Create Struct

Copy data from x64dbg dataview (pointer format), parse it and reconstruct import table structure

import clipboard # install package from pip

functions = [ line.split('!')[1].strip() for line in clipboard.paste().split('\n') ]

sid = AddStrucEx(0xffffffff, 'importable', 0)

for i, name in enumerate(functions):
    AddStrucMember(sid, name.encode('ascii'), i * 4, FF_DATA | FF_DWORD, -1, 4)

Remove Function Call By Address

def patch_mov_eax(addr, v):
    PatchByte(addr, 0xb8)
    PatchDword(addr+1, v)

def nop(addr, size=5):
    for i in range(size):
        PatchByte(addr + i, 0x90)

def remove_call(addr, use_nop=True):
    if Byte(addr) in (0xe8, 0xe9):
        if use_nop:
            nop(addr, 5)
        else:
            patch_mov_eax(addr, 0)
    elif Byte(addr) in (0xff,) and Byte(addr+1) in range(0xd0, 0xd8):
        if use_nop:
            nop(addr, 2)
        else:
            PatchWord(addr, 0xc031) # xor eax, eax


def remove_all_call(addrs, use_nop=True):
    for i in addrs.split():
        remove_call(int(i, 16), use_nop)

Smart MakeName

def tryMakeName(addr, name, i=0, suffix=''):
    n = name + suffix
    if LocByName(n) == addr:
        return
    while LocByName(n) != BADADDR:
        n = '%s_%d' % (name, i)
        i += 1
    MakeName(addr, n)

Remove Disassembler Trap

This script requires function from https://github.com/nlitsme/idascripts/blob/master/enumerators.py

Replace following patterns with nop

jz $+3
jnz $+1
.db 0xe9 ; 0xe8
op_pairs = [ (0x70, 0x71), (0x72, 0x73), (0x74, 0x75), (0x76, 0x77), (0x78, 0x79), (0x7a, 0x7b), (0x7c, 0x7d), (0x7e, 0x7f) ]
for pair in op_pairs:
    patterns = [
        "%.2x 03 %.2x 01 %.2x" % (a, b, c)
        for (a, b) in [ pair, pair[::-1] ]
        for c in (0xe8, 0xe9)
    ]
    for p in patterns:
        for ea in Binaries((FirstSeg(), BADADDR), p):
            PatchDword(ea, 0x90909090); PatchByte(ea + 4, 0x90)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].