https://github.com/llefranc/42_libasm
School project: get familiar with assembly language (with all the bonuses).
https://github.com/llefranc/42_libasm
42 42born2code 42paris 42school assembly assembly-language libasm stack
Last synced: 11 days ago
JSON representation
School project: get familiar with assembly language (with all the bonuses).
- Host: GitHub
- URL: https://github.com/llefranc/42_libasm
- Owner: llefranc
- Created: 2020-05-08T07:48:01.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-11-25T15:07:27.000Z (over 5 years ago)
- Last Synced: 2025-03-06T10:54:29.534Z (over 1 year ago)
- Topics: 42, 42born2code, 42paris, 42school, assembly, assembly-language, libasm, stack
- Language: Assembly
- Homepage:
- Size: 1.28 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# libasm (@42Paris)
Assembly yourself!

## About
Libasm is a project of the mandatory part of the cursus.
It's only made in assembly and the main goal was to understand how registers, stack, systems calls and memory work.
- For this we had to code in assembly 10 different functions :
- Mandatory part was : strlen, strcpy, strcmp, write and read (using syscall)
- Bonus part was : atoi_base, and 4 functions for chainlists
- Here is the [subject][1]
`This project was code for MACOS`
### Building and running the project
1. Download/Clone this repo
git clone https://github.com/lucaslefrancq/42_libasm.git
2. `cd` into the root directory, and run `make`
cd 42_libasm
make
3. compile your `main.c` or the `main.c` in this repo with `libasm.a`
## Sources
- [Langage assembleur (FR)][2]
- [Assembly language][4]
- [Nasm tutorial][8]
- [Using stack : push and pop][3]
- [Flags register][5]
- [Introduction aux buffer overflows (FR)][6]
- [Introduction à la rétroingénierie des binaires (FR)][7]
[1]: https://github.com/lucaslefrancq/42_libasm/blob/master/libasm.en.subject.pdf
[2]: https://www.lacl.fr/tan/asm
[3]: https://stackoverflow.com/questions/13091987/x64-nasm-pushing-memory-addresses-onto-the-stack-call-function
[4]: https://software.intel.com/content/www/us/en/develop/articles/introduction-to-x64-assembly.html
[5]: https://www.youtube.com/watch?v=oQKa5q-jVzY&ab_channel=BeNew
[6]: https://zestedesavoir.com/articles/100/introduction-aux-buffer-overflows/
[7]: https://zestedesavoir.com/articles/97/introduction-a-la-retroingenierie-de-binaires/#fn-6-e1__RVmdu
[8]: https://cs.lmu.edu/~ray/notes/nasmtutorial/