Skip to content

Instantly share code, notes, and snippets.

Eric Monti emonti

Block or report user

Report or block emonti

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View ffi_override_new_bug
#!/usr/bin/env jruby
# This code works fine in MRI, but not JRuby. For some strange reason
# jruby cannot superclass FFI::MemoryPointer or FFI::Buffer and override
# the initialize() method.
require 'ffi'
class SpecialBuffer < FFI::Buffer
def initialize()
super(256)
View gist:279607
# copy and paste this into IRB...
#
require 'ffi'
class Foo < FFI::Struct
layout :ary, [:uint16, 10]
end
f = Foo.new
@emonti
emonti / msf-rex.gemspec
Created Dec 1, 2010
gemspec to get a ruby gem out of lib/rex in the metasploit framework
View msf-rex.gemspec
# Drop this into msf3 root-dir as 'msf-rex.gemspec'.
#
# Create gem with:
# $ gem build msf-rex.gemspec
#
# Note there's already a "rex" rubygem, which is why we used 'msf-rex'.
# We can still "require 'rex'" though.
$: << 'lib'
@emonti
emonti / dyld_shared_cache.bt
Created Mar 8, 2012
dyld_shared_cache.bt 010 Editor Binary template
View dyld_shared_cache.bt
//--------------------------------------
//--- 010 Editor v3.2.2 Binary Template
//
// File: dyld_shared_cache.bt
// Author: Eric Monti
// Revision: 0.0.1
// Purpose: Parses Mac/iOS dyld_shared_cache format
//--------------------------------------
@emonti
emonti / dyldcache.c
Created Mar 8, 2012
dyldcache.c dyld_shared_cache dumper
View dyldcache.c
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
@emonti
emonti / 2dgrid.c
Created Sep 28, 2012
2d grid example for malic
View 2dgrid.c
#include <stdio.h>
#define ROWS 10
#define COLUMNS 7
// This is a 2-dimensional array.
// It makes accessing the values of a
// bitmap easy by using x/y references.
int grid[ROWS][COLUMNS] = {
{0,0,0,0,0,0,0}, // 7 columns across
@emonti
emonti / 1dgrid.c
Created Sep 28, 2012
1d grid example for malic
View 1dgrid.c
#include <stdio.h>
int main()
{
// Notice, there are no brackets around the rows this time.
// This is a 1-dimensional array. Even though it looks 2d in
// the code, it's one long list to the computer.
//
// Using a 1-dimensional array, we can still treat the data
// inside of it as a grid in our code, though.
@emonti
emonti / llvm_disassembler.rb
Last active Oct 13, 2015
Multi-arch bytecode disassembler using libLLVM
View llvm_disassembler.rb
#!/usr/bin/env ruby
# author eric monti ~ nov 20, 2012
# license: DWTFYW
require 'rubygems'
require 'ffi'
class LLVMDisassembler
module C
extend FFI::Library
ffi_lib ['LLVM', 'LLVM-3.2svn', 'LLVM-3.1', 'LLVM-3.0']
@emonti
emonti / make_xpwn_dylib.sh
Created Jan 10, 2014
quick/dirty build a dynamic lib from xpwn - eric monti WARNING: this was for something really specific -- YMMV... drop this in your top-level directory where you checked out planetbeing/xpwn and cross your fingers ;)
View make_xpwn_dylib.sh
#!/bin/bash
# quick/dirty build a dynamic lib from xpwn - eric monti
# WARNING: this was for something really specific -- YMMV...
# drop this in your top-level directory where you checked out planetbeing/xpwn and cross your fingers ;)
cmake -f CMakeLists.txt
make || exit 1
rm -rf ./sharedlib
mkdir -p ./sharedlib/lib
@emonti
emonti / extract_e7_datas.rb
Created Jan 10, 2014
quick/dirty tool to extract embeded gzip files out of the evasi0n7 jailbreak binary -- requires otool so probably OSX
View extract_e7_datas.rb
#!/usr/bin/env ruby
fname = ARGV.shift
fname || exit!
sections = `otool -l \"#{fname}\" |grep -A11 ^Section`.split(/^--$/).map do |sect_txt|
lines = sect_txt.lines.map(&:chomp)
Hash[ lines.map{|ln| ln.strip.split(' ', 2) } ]
end.select{|sect| sect["segname"] == "__DATA" and sect["sectname"] =~ /^data_\d+$/ }
You can’t perform that action at this time.