Skip to content

Libasm is an assembly programming project where you create a library of basic C functions written in x86-64 assembly (NASM syntax). The goal is to understand low-level programming, CPU registers, memory management, and system calls by reimplementing standard functions without relying on high-level languages.

Notifications You must be signed in to change notification settings

SouleEater99/libasm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Libasm πŸ”βœ¨

A Journey into Low-Level Programming with x86-64 Assembly


πŸš€ Overview

Libasm is a project where you reimplement basic C standard library functions in x86-64 assembly, gaining deep insight into how computers execute code at the lowest level. Perfect for aspiring reverse engineers, exploit developers, or anyone curious about what happens "under the hood"!


πŸ”‘ Key Features

βœ… Core Functions:

  • ft_strlen | ft_strcpy | ft_strcmp
  • ft_write | ft_read | ft_strdup

🌟 Bonus (Linked List):

  • ft_atoi_base | ft_list_push_front | ft_list_size | (+more)

πŸ› οΈ Technical Highlights

Aspect Details
Assembly Syntax NASM (Intel-style)
Calling Convention System V AMD64 ABI
Error Handling Properly set errno for syscalls
Optimization Zero-cost loops, register efficiency

πŸ” Security Insight πŸ›‘οΈ

Understanding assembly is crucial for:

  • Reverse Engineering: Analyze malware or proprietary software.
  • Exploit Development: Find buffer overflows, write shellcode.
  • Secure Coding: Learn why functions like strcpy are dangerous.

πŸ“‚ Project Structure

libasm/  
β”œβ”€β”€ ft_strlen.s    # Assembly source
β”œβ”€β”€ ft_strcpy.s  
β”œβ”€β”€ Makefile       # Builds libasm.a
└── test/          # Test cases vs. real C functions

🌟 Why This Project?

Master registers, syscalls, and memory management.

Write code that’s 10x faster than C (with clever optimizations).

Lay the groundwork for security research (malware analysis, binary exploitation).

Made with ❀️ and nasm. For hackers, by a future hacker. πŸ±πŸ’»


🎨 Tips for GitHub Polish

  1. Add a Demo GIF: Show your tests in action!
    ![Demo](https://media.giphy.com/media/your-demo-link.gif)
    

Assembly License

About

Libasm is an assembly programming project where you create a library of basic C functions written in x86-64 assembly (NASM syntax). The goal is to understand low-level programming, CPU registers, memory management, and system calls by reimplementing standard functions without relying on high-level languages.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published