Skip to content

Instantly share code, notes, and snippets.

@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 September 3, 2020 03:58
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)
@psifertex
psifertex / gist:91253a2fec94195cb9cf89a72db0e695
Last active March 26, 2020 16:47
live online training platform wish-list
The number of cancelled conferences has really driven home to me that we have
crap for online training. The educational market surely has solutions to these
problems, but in the paid commercial training space, where are the platforms
designed for live interactive training that aren't just video chat with a very
thing skin on them?!
Here's my proposed wish-list of features. I've added a [ranking] where [1] is
must have, and [3] is nice to have.
- [2] Ability to drive students to specific web resources or local