Skip to content

Instantly share code, notes, and snippets.

View benjholla's full-sized avatar

Ben Holland benjholla

View GitHub Profile
benjholla /
Last active September 19, 2018 03:36
An iterable string generator that deterministically generates all unique strings of length n for given an alphabet
import java.util.ArrayList;
import java.util.Iterator;
public class StringAlphabet implements Iterable<String> {
public static void main(String[] args) {
ArrayList<Character> chars = new ArrayList<Character>();
benjholla /
Created August 20, 2018 15:58
Welcome to SE421
public class SE421 {
public static void main(String[] args) {
* TODO: print World in unicode
* \u002A\u002F\u0070\u0072\u0069\u006E\u0074\u0028\u0022\u0043\u0072\u0075\u0065\u006C\u0022\u0029\u003B\u002F\u002A
benjholla /
Last active July 5, 2018 01:29 — forked from mpdavis/
A modified heartbleed exploit to extract likely session token strings
# Connects to servers vulnerable to CVE-2014-0160 and looks for cookies, specifically user sessions.
# Michael Davis (
# Based almost entirely on the quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (
# The author disclaims copyright to this source code.
import select
benjholla /
Last active September 17, 2017 00:01
Payload Dropper Options
Usage: java -jar dropper.jar [options]
--help, -h                   Prints this menu and exits.
--safety-off, -so            This flag must be specified to execute the modifications specified by embedded payloads (enabling the flag disables the built-in safety).
--search-directories, -s     Specifies a comma separated list of directory paths to search for targets, if not specified a default set of search directories will be used.
--output-directory, -o       Specifies the output directory to save modified runtimes, if not specified output files will be written as temporary files.
--replace-target, -r         Attempt to replace target with modified target.
--disable-watermarking, -dw  Disables watermarking the modified target (can be used for additional stealth, but could also cause problems for watchers). Watermarks are used to prevent remodifying a target.
--ignore-watermarks, -iw     Ignores watermarks and modifies targets regardless of whether or not they have been previously modified.
### Keybase proof
I hereby claim:
* I am benjholla on github.
* I am benjholla ( on keybase.
* I have a public key whose fingerprint is 9F91 64D0 3952 07B3 AAA4 5214 CC5B E141 4F37 D334
To claim this, I am signing this object:
package examples;
public class SliceExample {
public static void main(String[] args) {
/* 1 */
int i = readInput();
/* 2 */
if(i == 1){
benjholla /
Last active September 22, 2016 21:59
A basic Program Dependence Graph (PDG) example
* Basic Program Dependence Graph (PDG) example from:
* @author Ben Holland
public class BasicProgramDependenceGraphExample {
public static void main(String[] args) {
/* 1 */
benjholla /
Last active March 19, 2016 18:33
A small Java program demonstrating a dynamic dispatch
public class DynamicDispatchExample {
public static void main(String[] args){
A b1 = new B();
A c1 = new C();
A b2 = b1;
A c2 = c1;
// what will get printed?
benjholla / long_jump.c
Created February 10, 2016 18:28
An example of using long jumps in C to jump interprocedurally
#include <stdio.h>
#include <setjmp.h>
// saves the stack context/environment for nonlocal gotos
jmp_buf env;
// foo immediately makes a long jump to the setjmp in main
void foo(void){
benjholla /
Created January 27, 2016 02:25
A simple quine program implementation in Java
public class Quine {
public static void main(String[] args) {
char quote = 34;
String[] code = {
"public class Quine {",
" public static void main(String[] args) {",
" char quote = 34;",
" String[] code = {",
" };",
" for(int i=0; i<4; i++){",