Skip to content

Instantly share code, notes, and snippets.

View zcutlip's full-sized avatar

Zachary Cutlip zcutlip

View GitHub Profile
@zcutlip
zcutlip / color_bb.py
Last active December 20, 2022 06:43
Ghidra Script to Colorize all Basic Blocks for a Provided list of Addresses
from java.awt import Color
from ghidra.util.task import ConsoleTaskMonitor
from ghidra.program.model.block import BasicBlockModel
from docking.options.editor import GhidraColorChooser
"""
Ghidra script to colorize all basic blocks identified by the input file.
Prompts for a file to use as input. This script will attempt to sanity check
that a basic block actually does start at each provided address.
@zcutlip
zcutlip / function_bb.py
Created February 12, 2020 22:12
Ghidra Script to List all Basic Block Addresses for a Function
import os
from ghidra.program.model.block import BasicBlockModel
from ghidra.util.task import ConsoleTaskMonitor
"""
Ghidra script to identify the addresses of all basic blocks within a function
Prompts for name of a function, and name of an output file. Locates all basic block addreses
and writes them to the output file.
"""
@zcutlip
zcutlip / example.md
Created February 4, 2020 00:34
Using py-object-file to Parse a Mach-O

Using py-object-file to Parse a Mach-O

First, instantiate a Mach object, passing it the path to a mach-o binary:

m = Mach("/usr/lib/libobjc.A.dylib")

The Mach class treats all mach-o binaries as if they're fat binaries with at least once slice. So to work with your mach-o you first have to get its slice, even if it's not a fat binary. You can either to this by architecture name or slice index:

@zcutlip
zcutlip / lldb-hand-rolled-headers.md
Last active February 7, 2025 01:39
Importing Hand-Rolled C Header Files in LLDB

Importing Hand-Rolled C Header Files in LLDB

Scenario

  • We're debugging a dylib, libhello.dylib
  • The dylib is linked from hello
  • The exported function is helloworld()
  • We do not have source, but have reversed a struct from the library and created a hand-crafted header file

Header File

@zcutlip
zcutlip / adding-a-vmware-static-dhcp.md
Created November 8, 2019 23:58
Automatically adding a static DHCP reservation to VMWare's dhcpd.conf and to /etc/hosts
(0) $ python3 -m vmware_static_dhcp.vmware_static_dhcp --help
usage: vmware_static_dhcp.py [-h] --hw-addr HW_ADDR --ip-addr IP_ADDR
                             --hostname HOSTNAME
                             updated_hosts_path updated_dhcpd_conf_path

positional arguments:
  updated_hosts_path    Path to updated hosts file
  updated_dhcpd_conf_path
                        Path to update dhcpd.conf file.
@zcutlip
zcutlip / deletebranch.sh
Last active October 28, 2019 00:09
(Relatively) safely delete a git branch from local and remote
#!/bin/sh
# File: deletebranch.sh
# Author: Zachary Cutlip <[email protected]>
# Purpose: (Relatively) safely delete specified branch from local and origin in one pass
quit(){
if [ $# -gt 1 ];
then
echo $1