Skip to content

Instantly share code, notes, and snippets.

View richo's full-sized avatar

richö butts richo

View GitHub Profile
class Butts
attr_reader :foo
def new(whatever)
@foo = whatever
end
end
butts = Butts.new("hi there")
butts.foo # => "hi there"
#!/usr/bin/env python
import sys
import dis
def bar():
sys = sys.stdin
print repr(sys)
use nom::{IResult};
use nom::{le_u64,le_u32,le_u16};
use std::str::from_utf8;
// FIXME(richo) Flesh this out properly with it's own discrete parser.
#[derive(Debug)]
pub struct Options<'a> {
pub options: Vec<Opt<'a>>,
}
#[derive(Debug)]
-----BEGIN PGP MESSAGE-----
Version: GnuPG/MacGPG2 v2
Comment: GPGTools - https://gpgtools.org
jA0EAwMCdeqgGU7GIZTjyemw/4bYoIC1hrxqU3Byteux8IsntIjulJVMVVqj2uyU
TF5fsz5eLLTsGrgEs3XHCSlwD9RWc40JyQa+jRgR1LtMMxkkKumT3i3f0KJTwQoO
A7wyi4c+I1fNh0qImYBa84Dsd22FQ6ydqKxotJLdaiQL2Jmb/XHnk7Bhj1j7pAbD
tal0F3VI7vg1gQCJ5g9uUUlmPRq+wDnMW8NXGwjUaoBIzmw/iS73kVWDCL9uWAE2
tdaM9A4DsnQt3GDV3t8M5EPUbpuY+8wKFhZvAd4xOqwO7aCiMvmFwGmYvsifOJnI
dwyq7SKdf0TKOvfcmRTFMIR5kB7XA8VM1kJXHMpXof4W0aOPovzsyWoz1Ca7cJl0
@richo
richo / att.S
Last active August 29, 2015 14:22
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 10
.globl _main
.align 4, 0x90
_main: ## @main
.cfi_startproc
## BB#0:
pushq %rbp
Ltmp0:
.cfi_def_cfa_offset 16
-----BEGIN CERTIFICATE-----
MIIGDjCCBPagAwIBAgIQJjwoBGKYvgzaE0DC/cPxPjANBgkqhkiG9w0BAQsFADBf
MQswCQYDVQQGEwJGUjEOMAwGA1UECBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4w
DAYDVQQKEwVHYW5kaTEgMB4GA1UEAxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIw
HhcNMTUwNjAyMDAwMDAwWhcNMTYwNjAyMjM1OTU5WjBnMSEwHwYDVQQLExhEb21h
aW4gQ29udHJvbCBWYWxpZGF0ZWQxITAfBgNVBAsTGFBvc2l0aXZlU1NMIE11bHRp
LURvbWFpbjEfMB0GA1UEAxMWbWFnaWthcnAucHN5Y2gwdGlrLm5ldDCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBALZJy1CnDVLV8vYnq6Ka/QzGqccoLbTj
B5NbOiq+GUj5mdojz5Pq8WyTFFBbBrp4LFsE7eqiyN9FAy7Iih7okRFpKQbb+QOt
MQ4W/RpOJwSmRo4UhmQ9vyF+rSNh4MkCaqHqnw8GaBRP1SYnJKHpemFmrf4hg1K+
@richo
richo / lib.rs
Last active August 29, 2015 14:22
const BLOCK_ALIGN: usize = 4; // 32 bits
fn block_body<'a>(len: usize) -> Box<Fn(&'a [u8]) -> IResult<&'a [u8],&'a [u8]>> {
return Box::new(move |input:&'a [u8]| -> IResult<&'a [u8],&'a [u8]> {
if input.len() < len {
Incomplete(Needed::Size(len as u32))
} else {
let spill = (BLOCK_ALIGN - (len & 3 )) & 3;
let consumed: &'a [u8] = &input[len+spill..];
let parsed: &'a [u8] = &input[0..len];
#![feature(convert)]
/* Documentation for the various blocktypes
0x00000000 Reserved ???
0x00000001 Interface Description Block
0x00000002 Packet Block
0x00000003 Simple Packet Block
0x00000004 Name Resolution Block
0x00000005 Interface Statistics Block
0x00000006 Enhanced Packet Block
enum Thing {
Bar(HugeArray),
Baz(HugeArray),
}
struct Foo {
s: Box<Thing>,
}
// vs
# vim: ft=tmux
split-window -h -l 23 'voltron view reg -v'
split-window -v 'voltron view cmd "fr v"'
select-pane -L
split-window -p 30 'voltron view stack'
split-window -h 'voltron view disasm'
select-pane -U
split-window -h 'voltron view bt'
split-window 'voltron view cmd "di -l"'
split-window -l 11 'voltron view cmd "x/32x \$pc"'