Skip to content

Instantly share code, notes, and snippets.

View n4sm's full-sized avatar
🏳️
Fuzzing

nasm n4sm

🏳️
Fuzzing
View GitHub Profile
@n4sm
n4sm / open_self_linux_nasm.asm
Last active July 25, 2020 20:16
Just an assembly code which opens itself when it is mapped and executed, in nasm (in order to do for example self mofifying code)
; https://github.com/n4sm/AD_1DA/tree/master/AD_1DA
BITS 64
section .text
global _start
_start:
mov r13, 0x1111111111111111
@n4sm
n4sm / rendu_coins.py
Created May 4, 2020 07:15
Just a program which from a list of coins and a max value returns a list of the coins used
def rendu_S(syst_coins : list, max_val : int) -> list:
coins_used = []
syst_coins_sorted = sorted(syst_coins, reverse=True)
i = 0x0
while max_val > 0x0:
if syst_coins_sorted[i] > max_val:
i += 1
@n4sm
n4sm / exploit.c
Last active August 19, 2021 12:24
Kernel Exploitation - ROP bypass KPTI / smep
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <assert.h>
#include <sys/ioctl.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/vmalloc.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/fs.h>
#include <linux/miscdevice.h>
MODULE_LICENSE("GPL");
@n4sm
n4sm / macro.py
Last active September 16, 2020 20:48
#!/usr/bin/python3
import turtle
PENUP = "u"
PENDOWN = "d"
FORWARD = "f"
BACKWARD = "b"
LEFT = "l"
RIGHT = "r"
@n4sm
n4sm / expl.py
Created September 20, 2020 16:03
#!/usr/bin/python2
from pwn import *
def padd(d):
return d + '\00'*(8-len(d))
p = process("/home/nasm/rop")
# TO EDIT
@n4sm
n4sm / auto_unpacker.py
Last active March 20, 2023 08:54
Juste a simple auto unpacker for elf binaries which is using qiling: https://kernemporium.github.io/articles/en/auto_unpacking/m.html
#!/usr/bin/python3
# /*
# * ----------------------------------------------------------------------------
# * "THE BEER-WARE LICENSE" (Revision 42):
# * n4sm wrote this file. As long as you retain this notice you
# * can do whatever you want with this stuff. If we meet some day, and you think
# * this stuff is worth it, you can buy me a beer in return Poul-Henning Kamp
# * ----------------------------------------------------------------------------
# * /
# 4 nsi
class Liste:
def __init__(self):
self.main_l = [0]
# =-=-=-=-= Getters =-==-=-=-=-=
def ReadElem(self, i):
if i > self.main_l[0]:
@n4sm
n4sm / tiny_parser.rs
Last active February 17, 2024 04:10
A very small elf parser developped in rust (only the executable header for now)
use std::fs::File;
use std::fs::{OpenOptions};
use std::io::{Read};
//use std::mem::{size_of, transmute};
/*
typedef struct
{
unsigned char e_ident[EI_NIDENT]; // Magic number and other info
Elf64_Half e_type; // Object file type
Salut !
Etant donné que vous êtes beaucoup à me demander comment commencer le low level et le Reverse Engineering, je vais essayer de faire un petit résumé qui se base essentiellement sur ma propre expérience.
Tout d'abord je ne pense pas qu'il faille avoir des connaissances au préalable pour se lancer dans le low level, cependant il y a certaines notions qui sont indispensables dans le bas niveau et que l'on retrouve plus ou moins naturellement quand on a déjà codé en C ou mieux en assembleur. C'est donc pratique de savoir programmer dans un langage de bas niveau et c'est je pense la première étape pour envisager le low level.
Je conseille donc en premier lieu d'apprendre le C qui en plus d'être un langage que vous devrez très souvent lire, c'est aussi souvent des programmes en C que l'on commence à analyser quand on débute, de par la clarté du code assembleur généré.
**Pour apprendre le C je conseille ce cours écrit: https://zestedesavoir.com/tutoriels/755/le-langage-c-1/** (en français ce qui n'est pas