Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

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

eternal

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

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

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

सभी देखें →

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

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

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

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

परिचय

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

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

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

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

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

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

चेक आउट

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

root@kitploit:~
git clone --recurse-submodules https://github.com/adriancable/eternal

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

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

root@kitploit:~
cd eternal/vm
make

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

जब Linux बूट हो जाए, तो उदाहरण के लिए प्रयास करें:

root@kitploit:~
cd doom
./doom

टूलचेन का निर्माण

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

चेक आउट की गई eternal फ़ोल्डर में प्रारंभ करें।

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

root@kitploit:~
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 कर्नेल हेडर स्थापित करें

root@kitploit:~
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) बनाएं और स्थापित करें

root@kitploit:~
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++) बनाएं

root@kitploit:~
cd ../runtime
./build_and_install_runtime.sh
./build_libcxx.sh
ninja -C ./libcxx install

चरण 5: Busybox बनाएं

root@kitploit:~
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 बनाएं

root@kitploit:~
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 चलाएं

root@kitploit:~
cd ..
python3 tools/make_boot_image.py --stack-size 536870912 linux/vmlinux
./vm/vm linux/vmlinux.bootimage

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

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

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

root@kitploit:~
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 और कैप्सूल का पुनर्निर्माण करें:

root@kitploit:~
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 बूट करें:

root@kitploit:~
./vm/vm linux/vmlinux.bootimage

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

root@kitploit:~
./hello.elf

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

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

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

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

  • WebAssembly - अपने ब्राउज़र में ESI Linux आज़माएं

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

IOCCC

ESI वर्चुअल मशीन का एक संक्षिप्त संस्करण (C के 366 बाइट्स में) 29वीं IOCCC प्रतियोगिता का विजेता था।

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