Skip to content

Instantly share code, notes, and snippets.

View n4sm's full-sized avatar
🏳️
Fuzzing

nasm n4sm

🏳️
Fuzzing
View GitHub Profile
@n4sm
n4sm / autofunc_arm64.py
Created July 21, 2023 13:52
ARM64 bootloader / secure monitor function finder.
import idaapi
def find_sig(segment, sig, callback):
seg = idaapi.get_segm_by_name(segment)
if not seg:
return
ea, maxea = seg.start_ea, seg.end_ea
while ea != idaapi.BADADDR:
ea = idaapi.find_binary(ea, maxea, sig, 16, idaapi.SEARCH_DOWN)
if ea != idaapi.BADADDR:
@n4sm
n4sm / rsakeyfinder_ida.py
Last active July 19, 2023 07:40
Improved version of this script: http://www.trapkit.de/research/sslkeyfinder/ for recent IDApython versions.
#---------------------------------------------------------------------
# Simple IDA script to extract RSA private keys and certificates.
# kyprizel, 2010
#
# Based on original idea and PoC by Tobias Klein
# http://www.trapkit.de/research/sslkeyfinder/
#---------------------------------------------------------------------
import os
import idaapi
from idautils import *
l = open("input", "r").read().split("\n")
l[len(l)-1] = "0"
content = list(map(lambda x: int(x), l))
print(content)
counter = 0
"""
for i, n in enumerate(content):
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
@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
# 4 nsi
class Liste:
def __init__(self):
self.main_l = [0]
# =-=-=-=-= Getters =-==-=-=-=-=
def ReadElem(self, i):
if i > self.main_l[0]:
@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
# * ----------------------------------------------------------------------------
# * /
@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 / 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"
#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");