I hereby claim:
- I am c0deh4cker on github.
- I am c0deh4cker (https://keybase.io/c0deh4cker) on keybase.
- I have a public key ASDAYDYtqJGjVHyfmEJDXA3gw4geCBLvgpynNHx7M2t1Wgo
To claim this, I am signing this object:
#!/usr/bin/env python | |
from pwn import * | |
import sys | |
debug_server = False | |
use_system_libc = True | |
r = remote("pwn.chal.csaw.io", 8003); use_system_libc = False | |
# r = process("./hungman") | |
# r = process("./linux_serverx64"); debug_server = True |
/* THIS IS VERY BAD */ | |
#define CONCAT(a, b) CONCAT_(a, b) | |
#define CONCAT_(a, b) a##b | |
#define THIS_IS_BAD(test, first, rest, cond, body...) THIS_IS_BAD_2(__COUNTER__, test, first, rest, cond, ##body) | |
#define THIS_IS_BAD_2(uniq, test, first, rest, cond, body...) THIS_IS_BAD_3(CONCAT(this_is_bad_, uniq), test, first, rest, cond, ##body) | |
#define THIS_IS_BAD_3(label, test, first, rest, cond, body...) do { \ | |
if(test) { \ | |
first(); \ |
// Part 1 | |
extension UInt { | |
public init(bytes: Bytes) { | |
self = 0 | |
for byte in bytes { | |
self <<= 8 | |
self |= UInt(byte) | |
} | |
} | |
} |
#include <stdio.h> | |
// Even making the pointer volatile doesn't help | |
__thread int* tl_ptr; | |
int main(void) { | |
int x = 0xDEAD; | |
// Put a breakpoint on the following line | |
tl_ptr = &x; |
// | |
// main.c | |
// macho-syms | |
// | |
// Created by C0deH4cker on 3/19/16. | |
// Copyright © 2016 C0deH4cker. All rights reserved. | |
// | |
#include <stdio.h> | |
#include <stdlib.h> |
I hereby claim:
To claim this, I am signing this object:
#include <stdlib.h> | |
/*! Frees the pointer pointed to by the parameter and then sets it to NULL */ | |
#define destroy(pptr) do { \ | |
__typeof__(*(pptr)) volatile* _pptr = (pptr); \ | |
if(!_pptr) { \ | |
break; \ | |
} \ | |
free(*_pptr); \ | |
*_pptr = NULL; \ |
// | |
// patternhooker.c | |
// PatternHooker | |
// | |
// Finds a function by searching for a byte pattern and hooks it with CydiaSubstrate. | |
// | |
// Created by C0deH4cker on 7/26/15. | |
// Copyright (c) 2015 C0deH4cker. All rights reserved. | |
// |
// Just like C#'s using statement and Python's with statement. | |
// This allows use of a resource within a code block, after which | |
// the declared object's destructor will clean up. | |
// There's nothing about `with` that doesn't work in C, but it is | |
// pointless in standard C as there are no destructors. | |
// Multiple with statements can be nested as well, so it works as | |
// you'd expect. If for some bizarre reason you need to put multiple | |
// using statements on the same line, I've added another version, | |
// defined below as with_inline. | |
// |
// | |
// wordshift.cpp | |
// WordShift | |
// | |
// Created by C0deH4cker on 2/11/15. | |
// Copyright (c) 2015 C0deH4cker. All rights reserved. | |
// | |
#include <iostream> | |
#include <fstream> |