Skip to content

Instantly share code, notes, and snippets.

Ben Holland benjholla

Block or report user

Report or block benjholla

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
benjholla /
Last active Sep 19, 2018
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 Aug 20, 2018
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 Jul 5, 2018 — 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 Sep 17, 2017
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.
View gist:b84acd6887e8fece6e329aa6e7822c57
### 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 Sep 22, 2016
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 Mar 19, 2016
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 Feb 10, 2016
An example of using long jumps in C to jump interprocedurally
View long_jump.c
#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 Jan 27, 2016
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++){",
You can’t perform that action at this time.