• Stars
    star
    244
  • Rank 165,885 (Top 4 %)
  • Language
  • Created almost 3 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A roadmap to teach myself compiler dev, malware reverse engineering, exploitation and kernel dev fundamentals

System Programming Roadmap

A roadmap to teach myself compiler dev, malware reverse engineering and kernel dev fundamentals. To be noted they are only for the fundamental knowledge and doesn't make you a master of any. I will pick one or more of the below mentioned fields for later research in some specific topics. Low Level Programming University also has a good list of resources to follow but this is my personal roadmap.

Topics to study here may or may not be in order and can be studied according to your preference, gievn that prerequisites are getting fulfilled for each one of them.

Prerequisites

I'm already assuming that you have basic understanding of computer architecture and experience with atleast one system programming language, some basics of how assembly works and familiar using any POSIX system. A good detailed look of how computers work at the electronics level can be found in the book Introduction to Digital Electronics by Agner Fog.

System Programming Languages

Learn any two of the given languages, make some basic projects to get yourself familiar with it, solve some programming exercises.

Learn some Computer Architecture

Learn Arm and RISCV based computer architecture to build an efficient and optimized approach towards solving the problems at hardware level

Learn some x86

Prerequisites: Learn about Digital Logic

If you are not familiar with assembly yet, I would recommend checking out some tutorials like-

After this, I would recommend solving easy crackmes for exercise. crackmes.one and tryhackme are places to find some of the easy ones. Hard ones still require some pwning knowledge which I'm gona discuss in the exploitation section.

Compilers

Prerequisites include experience creating projects in a system programming language and a deep understanding of memory and CPU.

Exploitation

Prerequisites include experience with assembly.

Browser Hacking

Prerequisites include high level knowledge of VM internals, and solid understanding and experience with Compiler Engineering

Malware

Prerequisites include a high-level understanding of windows and solid reverse engineering skills.

OS Fundamentals

I'm not quite sure that I want to get into kernel development (yet) but the concepts seem cool and its a good idea for a vacation project or assignments for my OS classes in university. Make sure to read the requirements before getting started.

VM internals

Lists of VM internals to study while making progress in compiler engineering and Browser development:

Collective Courses

Collection of resources which includes 2 or more of the topics discussed above:

  • Nand To Tetris A course to teach you about how to build a computer, OS and a compiler form stratch.
  • Dive Into Systems A really good book to introduce you with systems programming.

More Repositories

1

ram

A stack based programming language written in rust
Rust
28
star
2

epictracker

A demo of how can I track you using fingerprinting and some automated lookups and stuff, using modern Javascript APIs
JavaScript
20
star
3

brainf

Making a brainf*ck compiler in 24 hours
C++
12
star
4

positive-vibes

A news app built with full-stack javascript with Parental controls and sentiment analysis
JavaScript
10
star
5

night

The night protocol and interface written in rust and nextjs respectively
Rust
8
star
6

Appledore

High performance caching layer for the hackarmour search engine based on the redis protocol but better.
Rust
7
star
7

hackathon-starter

A full stack JavsScript template [MERN] to quickly get started on a hackathon or some equivalent business you are up to.
JavaScript
4
star
8

betcoin

A currency system created with python
Python
3
star
9

ujjwal-kr

3
star
10

ip-upvote

Reverse engineering Urban Dictionary upvote system
Go
2
star
11

mywebsite

My website with reactjs and typescript
TypeScript
2
star
12

xenon

The Xenon app fetches only good news from the internet and presents it to you by the topic specified. Build in Angular and Node.js
Sass
2
star
13

marvel

A social network for the marvel fans to connect
TypeScript
2
star
14

travelx-pub

TypeScript
2
star
15

cvm

Experimenting with the C runtime environment, while trying to reimplement parts of glibc because why not.
C
2
star
16

scammer-list-compiled

HTML
1
star
17

webapi-csharp

CRUD API with C#
C#
1
star
18

didactic-broccoli

I have NO idea why this project exists
TypeScript
1
star
19

learning-c

I am learning C to make a freakin Kernel 🤓
C
1
star
20

CustomerService

A simple RESTful service for a shop/startup to manage its customers, customer's projects and project's tasks.
JavaScript
1
star
21

android-internals

A reference to learn about android, jvm, reversing apps and hacking the NDK
1
star
22

sussy-malware

A really sus malware written in rust for the hackarmour CTF reversing challenge āļž
Rust
1
star
23

localstore

TypeScript
1
star
24

xenon-news-api

API with Node JS for XENON news app
JavaScript
1
star
25

blog-db

for hosting some markdown files
1
star
26

talabat-scraper

A scraper written in python to scrape restaurant data from talabat.com
Python
1
star
27

epic-decode

HTML
1
star
28

bucketlist

A bucket-list app
TypeScript
1
star
29

xenon-admin

CSS
1
star
30

thinkit

A simple number game with javascript, created when I started learning web dev.
JavaScript
1
star