Skip to content

Instantly share code, notes, and snippets.

@Ayrx
Ayrx / IntegerArrayType.java
Created Aug 6, 2013
A custom UserType that enables Hibernate to map a Java integer array to a PostgreSQL integer array.
View IntegerArrayType.java
public class IntegerArrayType implements UserType {
protected static final int SQLTYPE = java.sql.Types.ARRAY;
@Override
public Object nullSafeGet(final ResultSet rs, final String[] names, final SessionImplementor sessionImplementor, final Object owner) throws HibernateException, SQLException {
Array array = rs.getArray(names[0]);
Integer[] javaArray = (Integer[]) array.getArray();
return ArrayUtils.toPrimitive(javaArray);
}
@Ayrx
Ayrx / safeLongToInt.java
Created Aug 20, 2013
A function to safely cast a long to an int without relying on any external libraries. From the brilliant Jon Skeet @ http://stackoverflow.com/questions/1590831/safely-casting-long-to-int-in-java
View safeLongToInt.java
public static int safeLongToInt(long l) {
if (l < Integer.MIN_VALUE || l > Integer.MAX_VALUE) {
throw new IllegalArgumentException
(l + " cannot be cast to int without changing its value.");
}
return (int) l;
}
@Ayrx
Ayrx / getenvaddr.c
Created Aug 28, 2013
A simple piece of C code to print out the memory address of a specific environmental variable.
View getenvaddr.c
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
char *addr;
if (argc < 2) {
printf("Usage:\n%s <environment variable name>\n", argv[0]);
exit(0);
}
@Ayrx
Ayrx / case_sensitive_path.py
Created Sep 12, 2013
A code snippet to find the case sensitive version of path name on the system given a case insensitive version.
View case_sensitive_path.py
import os
def get_case_sensitive_pathname(path, top):
for root, dirs, files in os.walk(top):
for d in dirs:
if os.path.join(root, d).lower() == path.lower():
return os.path.join(root, d)
for f in files:
if os.path.join(root, f).lower() == path.lower():
return os.path.join(root, f)
@Ayrx
Ayrx / enum.py
Created Oct 10, 2013
Code snippet for using enum in Python 2. http://stackoverflow.com/a/1695250/1170681
View enum.py
def enum(**enums):
return type('Enum', (), enums)
View aslr_dep.py
import argparse
import os
import pefile
class DllCharacteristics():
def __init__(self):
self.IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = False
self.IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = False
self.IMAGE_DLLCHARACTERISTICS_NO_BIND = False
@Ayrx
Ayrx / constant_compare.py
Created Nov 29, 2013
Function for constant time string comparison.
View constant_compare.py
def is_equal(a, b):
if len(a) != len(b):
return False
result = 0
for x, y in zip(a, b):
result |= x ^ y
return result == 0
View memdump.py
#!/usr/bin/env python
from __future__ import print_function
import sys
import os
import re
import ctypes
import argparse
ulseek = ctypes.cdll['libc.so.6'].lseek
ulseek.restype = ctypes.c_uint64
@Ayrx
Ayrx / foo.c
Last active Mar 26, 2019
Frida Stalker Crash
View foo.c
#include <stdio.h>
#include <unistd.h>
int main() {
while (1) {
printf("hello\n");
sleep(1);
}
}
View repro.js
var m = "python2.7";
var ex = "PyTraceBack_Type";
var module = Process.getModuleByName(m)
console.log(JSON.stringify(module));
for (var e of module.enumerateExports()) {
if (e.name == ex) {
console.log(JSON.stringify(e));
}