Skip to content

Instantly share code, notes, and snippets.

# Copyright (c) 2022 Vector 35 Inc
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
@psifertex
psifertex / copy-types.py
Last active April 7, 2022 15:45
copy types from one open binary ninja tab to another
#copy types -- cannot be run as a snippet. Copy into console switch tabs, run again
if 'saved_types' in globals() or 'saved_types' in locals():
log_info("Adding types...")
for t in saved_types:
bv.define_user_type(t[0], t[1])
del saved_types
else:
log_info("Copying types...")
saved_types = [ (x, bv.types[x]) for x in bv.type_names if not bv.is_type_auto_defined(x) ]
@psifertex
psifertex / transform.py
Created April 21, 2021 17:15
example transform API plugin for Binary Ninja
from binaryninja import Transform
from binaryninja.enums import TransformType
class HASHA(Transform):
name = 'HASHA'
long_name = 'ALWAYS RETURN A'
transform_type = TransformType.HashTransform
def perform_decode(self, data, params):
return b"AAAAA"
@psifertex
psifertex / gist:04f673069c10ee16a97e420e26228863
Created April 7, 2021 21:38
append to setters pydoc in a class decorator
We couldn’t find that file to show.
@psifertex
psifertex / resumes.js
Last active January 21, 2022 17:51
google apps script to save/sort incoming resumes
function processResumes()
{
/* Configuration */
var labelToSave = 'Resumes';
var labelToMarkSaved = 'Resumes/Saved';
var labelBroken = 'Resumes/Saved/Broken';
var resumeFolderID = 'INSERTYOURFOLDERIDHERE';
// Folder ID can be found just by browsing to the folder in google drive
/* Configuration Goes Here */
@psifertex
psifertex / public-slack.md
Last active September 22, 2020 20:36
Notes on running a "public" slack

My recommended settings for setting up a slack that you plan to allow public access to. Methods for adding public users include third-party utilities like slackin (https://github.com/emedvedev/slackin-extended) which enable active user badges, or simpler methods such as using the Share Invite Link from slack itself.

SUPER IMPORTANT

If you only do two things, make it these two: Make sure to disable all app integrations. There's a bunch that aren't secure for public slacks. Either deny all, or require review by an admin: https://YOURSLACK.slack.com/apps/manage/permissions Second, disable email in the profile view: https://binaryninja.slack.com/admin/settings#display_email_addresses

The reset are optional settings that may or may not be required depending on the slack:

@psifertex
psifertex / batch.py
Created May 25, 2020 21:01
simple batch processing script
#!/usr/bin/env python3
from binaryninja import *
import glob, sys, os
if len(sys.argv) > 1:
path = sys.argv[1:]
else:
path = ["/bin/ls"]
for arg in path:
for f in [x for x in glob.glob(arg) if os.path.isfile(x) and os.access(x, os.R_OK)]:
@psifertex
psifertex / scan.py
Created May 19, 2020 01:53
scan for getenv and dlopen calls
# Quick and dirty BN script for part of the whooo-r-u challenge during DEFCON Quals 2020.
# Used to identify likely environment variables and library names that were
# fed to other fuzzing sripts for SUID abuse
from binaryninja import *
import os
from pprint import pprint
import json
libname = "getenv" #re-ran the script with different arguments, not elegant, but it's CTF and both take a string in the first parameter...
@psifertex
psifertex / .bashrc
Created April 22, 2020 06:30
random bash aliases
if which dig >/dev/null 2>/dev/null
then
alias remoteip="dig +short myip.opendns.com @resolver1.opendns.com"
elif which curl >/dev/null 2>/dev/null
then
alias remoteip="curl http://ipecho.net/plain"
fi
function localip()
{
case "$OSTYPE" in
@psifertex
psifertex / README.md
Last active January 7, 2025 19:48
quick and dirty live graphing of memory usage

Quick Raw Data Graph

With thanks to willpatera for the google apps script this is based on.

Instructions:

  1. Make a new google sheet (add column headers like "uss", "rss" or "vss" as posted in log-memory.py as appropriate)
  2. Tools / Script Editor
  3. Paste google code.js into the window
  4. Run / Setup (Authorize the app)