Skip to content
Port of devttyS0's IDA plugins to the Ghidra plugin framework.
Python
Branch: master
Clone or download
fuzzywalls RenameVariables - Fixed bug where was not the last register saved and…
… cause subsequent variable renames to not occur.
Latest commit 4e615f3 Dec 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
img Added operator script to identify function calls and parameters passe… Dec 18, 2019
utils Added processor check to MIPS only scripts before running them. Dec 12, 2019
.gitignore
CallChain.py Call Chain - Sorted function list to more easily find function names. Dec 18, 2019
CodatifyFixupCode.py Added instruction alignment check before disassembling Nov 17, 2019
CodatifyFixupData.py
Fluorescence.py Added a git ignore and function call highlighter. Aug 29, 2019
FunctionProfiler.py
LeafBlowerFormatString.py
LeafBlowerLeafFunctions.py Added format string function identification to leaf blower. Dec 5, 2019
LocalXRefs.py Initial commit. Aug 29, 2019
MipsRopDouble.py
MipsRopFind.py Added processor check to MIPS only scripts before running them. Dec 12, 2019
MipsRopIret.py Added processor check to MIPS only scripts before running them. Dec 12, 2019
MipsRopLia0.py
MipsRopStackFinder.py Added processor check to MIPS only scripts before running them. Dec 12, 2019
MipsRopSummary.py Added processor check to MIPS only scripts before running them. Dec 12, 2019
MipsRopSystem.py Added processor check to MIPS only scripts before running them. Dec 12, 2019
Operator.py Operator - Added technique to determine argument count through the de… Dec 19, 2019
README.md
RenameVariables.py
RizzoApply.py Added Rizzo signature creation and application Dec 12, 2019
RizzoSave.py

README.md

Converting IDA Plugins from devttyS0 to Ghidra framework. To install, clone and add the script directory via Ghidra's Script Manager. If you check the 'In Tool' checkbox they will appear under a 'TNS' tag.

Table Of Contents

OG Scripts

Call Chain - Find call chains between two functions

Codatify - Fix up code and data.

Fluorescence - Highlight function calls.

Function Profiler - Display cross refs from the current function.

Leaf Blower - Identify common POSIX functions.

Local Cross References - Find references to items in the current function.

MIPS Rop Finder - Find ROP gadgets in MIPS disassembly.

Rename Variables - Rename saved stack variables.

Rizzo - Create fuzzy function signatures that can be applied to other projects.

New Scripts

Operator - Identify calls to functions and the parameters that are provided to the function.


Call Chain

Display the call chain, if it exists, between two functions. The output will be display using a modified graphviz library as well as Ghidra's console.

Call Chain Graph

Call Chain Text


Codatify

Fixup Code

Define all undefined data in the .text section as code and covert it to a function if applicable.

Before

Code Before

After

Code After

Fixup Data

Define uninitialized strings and pointers in the code. All other uninitialized data is converted to a DWORD. Finally, search for function tables and rename functions based off the discovered tables.

Before

Data Section

Data Before

Cross Reference

Xref Before

After

Data Section

Data After

Cross Reference

Xref Before


Fluorescence

Highlight or un-highlight all function calls in the current binary.

Highlighted function calls


Function Profiler

Display all cross references from the current function. Will display all strings, functions, and labels. Depending on the size of the function, the console output size may need to be adjusted to view all the text.

Function Profiler Output


Leaf Blower

Identify common POSIX functions such as printf, sprintf, memcmp, strcpy, etc

Identify Leaf Functions

Identify leaf functions such as strcpy, strlen, atoi, etc.

Leaf Functions Output

Identify Format Parameter Functions

Identify funtions that accept format parameters to identify sprintf, printf, fscanf, etc.

Leaf Functions Output


Local Cross References

Find references to the selected item in the current function.

Local Cross References

Operator

Identify calls and the parameters provided to the function when called. The script will take into account variadic arguments if they can be identified, however, passing argument via the stack will not.

Function Calls

MIPS ROP Gadget Finder

Find ROP gadgets in MIPS disassembly.

Double Jumps

Search for gadgets that contain double jumps.

Double Jump

Find

Find gadgets that contain custom MIPS instructions. Regular expressions are supported. To search for a move to a0 from anything, simply search for "move a0,.*".

Find Dialog Box

Find Result

Indirect Return

Find indirect return gadgets. Call t9 and then return to ra.

Indirect Return

Li a0

Find gadgets that load a small value into a0. Useful for calling sleep.

Li a0

Stack Finder

Find gadgets that place a stack address in a register.

Stack Finders

Summary

Print a summary of gadgets that have been book marked with the string ropX where X is the gadgets position in the rop chain. Double jumps can be displayed by appending _d to the ropX bookmark name: ropX_d.

Creating a Book mark

Summary

System Gadgets

Find gadgets suitable for calling system with user controlled arguments.

System Gadgets


Rename Variables

Rename saved stack variables for easier tracking. Only valid in MIPS.

Rename stack variables


Rizzo

Create function signatures that can be shared amongst different projects. There are multiple sets of signatures that are generated:

  • Formal: Function matches entirely
  • Fuzzy: Functions resemble each other in terms of data/call references.
  • String: Functions contain same string references.
  • Immediate: Functions match based on large immediate value references.

Formal signatures are applied first, followed by string, immediate, and fuzzy. If a function is considered a match internal calls are also considered for renaming.

Apply

Apply Rizzo signatures from another project.

Apply Rizzo Signatures

Save

Save Rizzo signatures from the current project.

Save Rizzo Signatures

You can’t perform that action at this time.