Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
eternal — न्यूनतम मशीन आर्किटेक्चर जिसमें LLVM कंपाइलर बैकएंड, Linux पोर्ट, और वर्चुअल मशीन है, जो स्व-निहित सॉफ्टवेयर कैप्सूल बनाने के लिए है जो जटिल निर्भरताओं के बिना अनिश्चित काल तक चलने योग्य रहते हैं। | Kitploit
उपकरण/GitHubGitHub/adriancable/eternal
रिवर्स इंजीनियरिंगसुरक्षा वर्चुअलाइजेशनहार्डवेयर सुरक्षापेपर और शोधलर्निंग और शिक्षाचयनित संसाधन
GitHubadriancable/eternal

eternal

न्यूनतम मशीन आर्किटेक्चर जिसमें LLVM कंपाइलर बैकएंड, Linux पोर्ट, और वर्चुअल मशीन है, जो स्व-निहित सॉफ्टवेयर कैप्सूल बनाने के लिए है जो जटिल निर्भरताओं के बिना अनिश्चित काल तक चलने योग्य रहते हैं।

रिपॉजिटरी देखें
21111285 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

परिचय

यह Eternal Software Initiative के लिए रूट रिपॉजिटरी है।

ESI एक न्यूनतम मशीन आर्किटेक्चर (Subleq OISC के एक संशोधन पर आधारित) को परिभाषित करता है जो इतना सरल है कि इसका पूर्ण विनिर्देश एक नैपकिन पर लिखा जा सकता है। फिर हम इस आर्किटेक्चर के लिए एक LLVM कंपाइलर बैकएंड, Linux का एक पोर्ट, C/C++ रनटाइम लाइब्रेरीज़ के पोर्ट, और अन्य टूल्स (जिसमें ~50 लाइनों के C में एक संदर्भ वर्चुअल मशीन इम्प्लीमेंटेशन शामिल है) प्रदान करते हैं, जो मौजूदा सॉफ़्टवेयर से एक स्व-निहित 'कैप्सूल' बनाने और चलाने के लिए आवश्यक हैं।

इस सबका उद्देश्य क्या है? आज के सॉफ़्टवेयर को चलाने के लिए मालिकाना और अपूर्ण रूप से प्रलेखित हार्डवेयर के ऊपर निर्भरताओं का एक जटिल स्टैक (कंपाइलर, लाइब्रेरीज़, फ्रेमवर्क, OS) आवश्यक है, जिससे यह सुनिश्चित करना बहुत कठिन हो जाता है कि आज का सॉफ़्टवेयर भविष्य में भी संचालित होता रहेगा। 'बिट रॉट' की यह समस्या किसी भी ऐसे व्यक्ति को भली-भांति ज्ञात है जो वर्षों या दशकों की अवधि में लीगेसी सॉफ़्टवेयर का रखरखाव करता है, लेकिन अब कल्पना करें कि 1,000 वर्ष बाद का एक इतिहासकार 21वीं सदी के जीवन को समझने का प्रयास कर रहा है, जिसका बहुत सारा हिस्सा सॉफ़्टवेयर के माध्यम से अनुभव किया जाता है। भले ही आज के सॉफ़्टवेयर बाइनरीज़ संरक्षित हों, यह कल्पना करना दूर की बात है कि वे बाइनरीज़ अभी भी चलाने योग्य होंगी। QEMU जैसे एमुलेटर इस समस्या को इधर-उधर तो करते हैं लेकिन हल नहीं करते: उनमें भी सॉफ़्टवेयर और हार्डवेयर निर्भरताओं का समान रूप से जटिल स्टैक होता है, और इसलिए वे भी दूर के भविष्य में चलाने योग्य नहीं होंगे।

ESI इस समस्या को इस प्रकार हल करता है: (1) एक ऐसी आर्किटेक्चर को परिभाषित करके जो नैपकिन पर लिखने के लिए पर्याप्त सरल है लेकिन किसी भी सॉफ़्टवेयर को कुशलता से निरूपित करने के लिए पर्याप्त शक्तिशाली है, और जिसके लिए किसी मालिकाना हार्डवेयर, सॉफ़्टवेयर, फ्रेमवर्क इत्यादि के ज्ञान की आवश्यकता नहीं होती, और (2) किसी भी मौजूदा सॉफ़्टवेयर को इस आर्किटेक्चर के लिए एक स्व-निहित 'कैप्सूल' में कंपाइल करने के लिए एक टूलचेन को लागू करके। यह सुनिश्चित करता है कि, बशर्ते कैप्सूल बाइनरी और नैपकिन निर्देश संरक्षित रहें, सॉफ़्टवेयर को वर्तमान दिन की कंप्यूटिंग प्रणालियों के किसी भी ज्ञान को माने बिना दूर के भविष्य में पुनर्जीवित और अनुभव किया जा सकता है।

इस रिपॉजिटरी में अपनी स्वयं की ESI मशीन बनाने और चलाने, तथा मौजूदा सॉफ़्टवेयर से ESI 'कैप्सूल' बनाने के लिए आवश्यक सब कुछ शामिल है।

ESI के मिशन के बारे में अधिक जानकारी के लिए देखें: https://www.eternal-software.org

चेक आउट

इस रिपॉजिटरी में सबमॉड्यूल के रूप में LLVM टूलचेन, Linux कर्नेल, uClibc-ng, और Busybox के ESI फोर्क्स शामिल हैं। इन सभी को एक साथ चेक आउट किया जाना चाहिए।

git clone --recurse-submodules https://github.com/adriancable/eternal

VM बनाएं और आज़माएं

ESI वर्चुअल मशीन बनाने के लिए आपको SDL3 की आवश्यकता होगी। उदाहरण के लिए apt install libsdl3-dev से इंस्टॉल करें। कोई अन्य निर्भरता नहीं है। SDL3 को पिक्सेल लिखने और कीबोर्ड इवेंट कैप्चर करने के किसी भी अन्य साधन से, अभी या भविष्य में, आसानी से बदला जा सकता है।

cd eternal/vm
make

xz -d ../capsules/vmlinux.bootimage.xz
./vm ../capsules/vmlinux.bootimage

जब Linux बूट हो जाए, तो उदाहरण के लिए आज़माएं:

cd doom
./doom

टूलचेन बनाना

ESI टूलचेन को किसी भी Linux सिस्टम पर न्यूनतम प्रयास के साथ बनना चाहिए। हमने macOS पर भी कुछ संशोधनों के साथ सफलतापूर्वक बनाया है। सुनिश्चित करें कि आपके पास gcc, python3, CMake, ninja, flex, bison इंस्टॉल और कार्यशील हैं।

चेक आउट किए गए eternal फ़ोल्डर में शुरू करें।

चरण 1: ESI LLVM बनाएं

rm -rf llvm-project/build && mkdir -p llvm-project/build
cmake -G Ninja -S llvm-project/llvm -B llvm-project/build -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_BUILD_TOOLS=ON -DLLVM_ENABLE_ASSERTIONS=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="" -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="Subleq" -DLLVM_DEFAULT_TARGET_TRIPLE="subleq-unknown-linux" -DLLVM_FORCE_VC_REPOSITORY="ESI" -DLLVM_FORCE_VC_REVISION=""

cd llvm-project/build
ninja llc clang llvm-mc lld llvm-objcopy llvm-ar llvm-ranlib llvm-nm llvm-readelf llvm-strip llvm-objdump

चरण 2: Linux कर्नेल हेडर इंस्टॉल करें

cd ../../linux
make ARCH=subleq \
  CC=../llvm-project/build/bin/clang \
  LD=../llvm-project/build/bin/ld.lld \
  AR=../llvm-project/build/bin/llvm-ar \
  NM=../llvm-project/build/bin/llvm-nm \
  OBJCOPY=../llvm-project/build/bin/llvm-objcopy \
  INSTALL_HDR_PATH=../runtime/sysroot/kernel-headers \
  headers_install

चरण 3: ESI C रनटाइम (uClibc-ng) बनाएं और इंस्टॉल करें

cd ../uclibc-ng
make ARCH=subleq defconfig

make ARCH=subleq \
  CC=../llvm-project/build/bin/clang \
  LD=../llvm-project/build/bin/ld.lld \
  AR=../llvm-project/build/bin/llvm-ar \
  NM=../llvm-project/build/bin/llvm-nm \
  PREFIX=../runtime/sysroot \
  STRIPTOOL=../llvm-project/build/bin/llvm-strip \
  DEVEL_PREFIX=/ \
  install_dev

चरण 4: ESI कोर रनटाइम्स (CPU, FPU, C++) बनाएं

cd ../runtime
./build_and_install_runtime.sh
./build_libcxx.sh
ninja -C ./libcxx install

चरण 5: Busybox बनाएं

cd ../busybox
make subleq_defconfig

make CC=../llvm-project/build/bin/clang \
     AR=../llvm-project/build/bin/llvm-ar \
     STRIP=../llvm-project/build/bin/llvm-strip

mkdir ../initramfs_root/bin
cp busybox ../initramfs_root/bin/busybox

चरण 6: ESI Linux बनाएं

cd ../linux
export KBUILD_BUILD_USER="root"
export KBUILD_BUILD_HOST="eternal"

make ARCH=subleq \
  CC=../llvm-project/build/bin/clang \
  LD=../llvm-project/build/bin/ld.lld \
  AR=../llvm-project/build/bin/llvm-ar \
  NM=../llvm-project/build/bin/llvm-nm \
  OBJCOPY=../llvm-project/build/bin/llvm-objcopy \
  defconfig

make ARCH=subleq \
  CC=../llvm-project/build/bin/clang \
  LD=../llvm-project/build/bin/ld.lld \
  AR=../llvm-project/build/bin/llvm-ar \
  NM=../llvm-project/build/bin/llvm-nm \
  OBJCOPY=../llvm-project/build/bin/llvm-objcopy

चरण 7: कैप्सूल बनाएं और VM चलाएं

cd ..
python3 tools/make_boot_image.py --stack-size 536870912 linux/vmlinux
./vm/vm linux/vmlinux.bootimage

समाप्त होने पर VM को समाप्त करने के लिए exit टाइप करें।

अपना स्वयं का सॉफ़्टवेयर कंपाइल और चलाना

मानक क्रॉस-कंपाइलेशन वर्कफ़्लो। जल्दी शुरू करने के लिए, हम एक सुविधा स्क्रिप्ट (clang_userspace.sh) प्रदान करते हैं जो वातावरण सेट करती है और clang को कॉल करती है।

cat << 'EOF' > hello.c
#include <stdio.h>

int main() {
    printf("Hello, ESI world!\n");
    return 0;
}
EOF

tools/clang_userspace.sh hello.c
cp hello.elf initramfs_root/root

फिर initramfs और कैप्सूल को पुनः बनाएं:

cd linux
make ARCH=subleq \
  CC=../llvm-project/build/bin/clang \
  LD=../llvm-project/build/bin/ld.lld \
  AR=../llvm-project/build/bin/llvm-ar \
  NM=../llvm-project/build/bin/llvm-nm \
  OBJCOPY=../llvm-project/build/bin/llvm-objcopy

cd ..
python3 tools/make_boot_image.py --stack-size 536870912 linux/vmlinux

VM बूट करें:

./vm/vm linux/vmlinux.bootimage

एक बार Linux बूट हो जाने पर:

./hello.elf

तकनीकी दस्तावेज़ीकरण

आर्किटेक्चर और टूलचेन को समझने के लिए आज के डेवलपर्स के लिए प्रदान किया गया। 1,000 वर्ष बाद किसी के लिए कैप्सूल को पुनर्जीवित करने और उसके भीतर के सॉफ़्टवेयर को चलाने के लिए इसमें से कुछ भी (नैपकिन को छोड़कर) आवश्यक नहीं है।

  • नैपकिन
  • ESI मशीन आर्किटेक्चर संदर्भ
  • LLVM बैकएंड पोर्ट संदर्भ
  • Linux कर्नेल पोर्ट संदर्भ

ESI वर्चुअल मशीन पोर्ट्स

टूल डाउनलोड करें