An on going project to learn ELF format.

Related tags

React elf.js
Overview

elf.js

An on going project to learn ELF format. The end goal is to be able to generate simple but actually working executables.

Quick Start

Supports only x86_64 Linux. You need only node.js:

$ node elf.js gen hello 'Hello, World'
$ ./hello

It literally generates a working ELF64 executable file byte by byte that prints Hello, World when run on Linux x86_64.

Development

Recompile elf.js from elf.ts

$ npm install
$ ./node_modules/.bin/tsc
You might also like...

This project was developed to show the leaderboards of races in OpenFusion which is an open source revival project of the beloved CN FusionFall.

Getting Started with DexLabs Leaderboards This project was developed to show the leaderboards of races in OpenFusion which is an open source revival p

Jul 20, 2022

Hello, world! :) Welcome to this project. This is a free web repository that you can use as a blog for your website. This project is dedicated to "Sina Sattari" as an honorary title.

QURNO News/Technology Web Application Greetings and courtesy to all of you dear colleagues and friends of the DarkDragons team. We came back with anot

Sep 8, 2022

This project was bootstrapped with Chakra UI & Create React App

This project was bootstrapped with Chakra UI & Create React App

Getting Started with Create React App This project was bootstrapped with Chakra UI & Create React App. ScreenShots Available Scripts In the project di

Dec 11, 2022

Open-source project which generates the Fortnite Item Shop in an image similar to the in-game design.

Open-source project which generates the Fortnite Item Shop in an image similar to the in-game design.

Fort-Shop Fort-Shop is a unique project which generates the current Fortnite Item Shop into a stylized image, similar to the new In-Game design (refer

Jan 5, 2023

Java/React Camp Project

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

May 22, 2022

This command line helps you create components, pages and even redux implementation for your react project

This command line helps you create components, pages and even redux implementation for your react project

react-help-create This command line helps you create components, pages and even redux implementation for your react project. How to install it? To ins

Dec 10, 2022

Finished code and notes from EFA bonus class on building a React project without create-react-app

React From Scratch Completed Code This is the completed code for the EFA bonus class on building a React project from scratch. Included are also markd

Oct 11, 2021

Example project using Miniflare, esbuild and AVA

Miniflare Example Project This is an example Cloudflare Workers project that uses Miniflare for local development, esbuild for bundling, and AVA for t

Dec 3, 2022

my best project right now ❤️

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Dec 20, 2021
Comments
  • Better indication for beginning of first segment

    Better indication for beginning of first segment

    Hi, I watched your amazing stream about this project. I noticed that if the entry point was not at the beginning of code segment (by setting entry <label>) the current impelemention do not detect the correct beggining of Machine code. like:

    format ELF64 executable 3
    
    SYS_write = 1
    SYS_exit = 60
    STDOUT = 1
    
    segment readable executable
    
    ; <-------- original entry point
    
    ; these must not be executed ,
    ; (but the elf.js parser must shows them in result console as first machine code bytes)
    syscall
    syscall
    syscall
    
    print: ; rsi=str.ptr  rdx=str.size
        mov rax, SYS_write
        mov rdi, STDOUT
        syscall
        ret
    
    exit: ; rdi=retcode
        mov rax, SYS_exit
        syscall
        ret
    
    entry main   ;   <-------- change of entry point of the program
    main:
        mov rsi, hello
        mov rdx, hello_sz
        call print
    
        mov rdi, 0
        call exit
    
        ret ; UNREACHABLE
    
    segment readable writable
    hello: db "Hello, World!", 10
    hello_sz = $-hello
    

    now if I run the elf.js parse routine, It doesn't show repeated syscall bytecode and it gives me: Ehdr.e_entry = 4194513 Phdrs[0].p_vaddr = 4194304

    4194513-4194304 = 209 but the correct offset for beginning of the machine code must remains 64(ElfH)+2*56(ProgH)=176

    I think because this project may lead to porth development, it's better to use a better way to detect start of the machine code (separate it from entry point), OR just keep in mind to not change entry point from the start of the segment to other addresses.

    opened by HKhademian 0
Owner
Tsoding
Recreational Programming
Tsoding
Github-ci-cd-react - I followed CI/CD course from codedamn to learn how to implement github actions in a project, in this practical lesson with codedamn am using ReactJS

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Okechukwu Somtochukwu 1 Jan 2, 2022
Airbnb-React - In this project, An Airbnb experience page clone is created to learn and implement React props concepts.

Create React Airbnb App In this project An airbnb experience page clone is created to learn and implement React props concepts. Objectives Learn about

Yogesh Gurjar 4 Jun 28, 2022
The repository helps you learn React by building Netflix :star:

Learn React by Building Netflix. Click ⭐ if you like the project. Pull Request are highly appreciated ❤️ You can check the advance folder for more Rea

Hiep Le 181 Dec 22, 2022
CEP is a software platform designed for users that want to learn or rapidly prototype using standard A.I. components.

Cortic Edge-computing Platform (CEP) CEP is a software platform designed for users that want to learn or rapidly prototype using standard A.I. compone

Cortic Technology Corp. 137 Jan 1, 2023
Creating this clone to learn the fundamentals of Next Js and Tailwind CSS.

Next.js + Tailwind CSS Example This example shows how to use Tailwind CSS (v3.0) with Next.js. It follows the steps outlined in the official Tailwind

Premveer Tomar 2 Feb 2, 2022
Allocate is a place where families can go to learn about crypto.

Allocate It is a platform to teach kids how to grow their allowance through the use of de-fi tools. It's designed for kids, managed by parents. Descri

Nathan Tarbert 20 Aug 18, 2022
React-play is an opensource platform that helps you learn ReactJS faster with hands-on practice model

react-play is an opensource web app that helps you learn ReactJS faster with hands-on practice model. It is a collection of ReactJS projects that you can use to learn ReactJS.

Tapas Adhikary 580 Dec 30, 2022
🔄 Basic project to start studying React and Typescript. With it you can translate text to binary or morse language. This project addresses the creation of routes and components.

max-conversion Projeto criado para iniciar nos estudos de React e Typescript Basic project to gain knowledge in react Na plataforma é possível convert

Igor Neves 3 Feb 12, 2022
This a todo list project that uses webpack. In this project you will find features like adding tasks, deleting tasks, maintaining localstorage, marking tasks completed and clearing all completed tasks.

webpack-Todo list This a todo list project that uses webpack. In this project you will find features like adding tasks, deleting tasks, maintaining lo

Natnael Demelash 2 Jun 15, 2022
WPPConnect/mobile is an open source project with the objective of automating whatsapp web using the android or ios mobile browser and being able to perform all the functions of our wa-js project

WPPConnect/mobile is an open source project with the objective of automating whatsapp web using the android or ios mobile browser and being able to perform all the functions of our wa-js project, so it is possible to create a customer service, media sending, intelligence recognition based on artificial phrases and many other things, use your imagination to change and modify this project or collaborate on improvements...

null 11 Dec 28, 2022