Skip to content

Instantly share code, notes, and snippets.

View SiD3W4y's full-sized avatar

Tanguy Dubroca SiD3W4y

View GitHub Profile
@SiD3W4y
SiD3W4y / PagesJaunes-CLI.py
Last active March 7, 2017 08:25
Simple cli for pages jaunes
import requests
import urllib
import bs4
import json
import base64
def parse_card(elem):
result = {
"name":"",
"phone":"",
extern crate crypto;
extern crate rand;
use std::thread;
use std::io::{Read,Write,BufRead,BufReader,BufWriter};
use std::net::{TcpListener, TcpStream};
use rand::Rng;
use crypto::md5::Md5;
use crypto::digest::Digest;
@SiD3W4y
SiD3W4y / shcc.sh
Created March 21, 2017 20:16
Assembly to raw shellcode or runnable program
#!/usr/bin/zsh
ARCH="elf64"
TARGET=""
MODE="raw"
while getopts "a:f:e" arg; do
case $arg in
a)
@SiD3W4y
SiD3W4y / re2-solver.py
Last active April 3, 2017 08:54
Code to compute the flag reversed from the challenge binary (alexctf)
# Flag used to build the final one
flag = "L3t_ME_T3ll_Y0u_S0m3th1ng_1mp0rtant_A_{FL4G}_W0nt_b3_3X4ctly_th4t_345y_t0_c4ptur3_H0wev3r_1T_w1ll_b3_C00l_1F_Y0u_g0t_1t"
# Code table made of indices (used with the first flag)
table = [36, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 54, 0, 0, 0, 101, 0, 0, 0, 7, 0, 0, 0, 39, 0, 0, 0, 38, 0, 0, 0, 45, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 86, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 101, 0, 0, 0, 3, 0, 0, 0, 45, 0, 0, 0, 22, 0, 0, 0, 2, 0, 0, 0, 21, 0, 0, 0, 3, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 68, 0, 0, 0, 68, 0, 0, 0, 1, 0, 0, 0, 68, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0]
"""
Using this code table (dumped from memory)
0x24 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x05 0x00 0x00 0x00 0x36 0x00 0x00 0x00
@SiD3W4y
SiD3W4y / otree.ml
Created July 27, 2017 17:00
Simple tree directory listing exercise in ocaml
open Sys;;
let rec repeat chr times =
match times with
| 0 -> ()
| _ -> print_string chr; repeat chr (times-1)
;;
let print_entry path level =
repeat " " level;
@SiD3W4y
SiD3W4y / tablEZ_100.py
Last active November 4, 2017 08:26
Solver for CSAW CTF 2017 "tablez"
import struct
# Table dumped from executable
maybe_table = struct.pack ("512B", *[
0x01,0xbb,0x02,0x9b,0x03,0xc4,0x04,0x6c,0x05,0x4a,0x06,
0x2e,0x07,0x22,0x08,0x45,0x09,0x33,0x0a,0xb8,0x0b,0xd5,
0x0c,0x06,0x0d,0x0a,0x0e,0xbc,0x0f,0xfa,0x10,0x79,0x11,
0x24,0x12,0xe1,0x13,0xb2,0x14,0xbf,0x15,0x2c,0x16,0xad,
0x17,0x86,0x18,0x60,0x19,0xa4,0x1a,0xb6,0x1b,0xd8,0x1c,
0x59,0x1d,0x87,0x1e,0x41,0x1f,0x94,0x20,0x77,0x21,0xf0,
from unicorn import *
from unicorn.x86_const import *
import struct
class FlagStream:
flag = "flag"
def __init__(self,pattern):
self.flag += pattern
@SiD3W4y
SiD3W4y / example.c
Created September 17, 2017 13:11
Simple tutorial on Reverse Engineering and understanding assembly
#include <stdio.h>
int main()
{
int a = 2;
int b = 4;
int c = a + b + 3;
printf("Resultat %d\n",c);
import struct
# LSE LadyBot assembler lib
class Ops:
MOVE = 0x00
ADD = 0x10
EQ = 0x20
LT = 0x30
LE = 0x40
@SiD3W4y
SiD3W4y / stealth.py
Created February 23, 2018 20:16
import unittest without using any obvious method, could be used to fake tests using unittest for automatic grading (theorically and with further improvement)
# it is the bytecode used in the code constructor
#def s():
# import unittest as m
# return m
# we need a dummy function to inject the code object in it
def dummy():
pass
dummy.__code__=type(dummy.__code__)(0,0,1,2,67,b'd\x01d\x00l\x00}\x00|\x00S\x00',(None,0),('unittest',),('m',),'','',1,b'\x00\x01\x08\x01')