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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
lfi — LFI के लिए शीर्ष-स्तरीय भंडार: व्यावहारिक, कुशल और सुरक्षित सॉफ्टवेयर-आधारित सैंडबॉक्सिंग | Kitploit
उपकरण/GitHubGitHub/lfi-project/lfi
एम्बेडेड सिस्टम सुरक्षास्थैतिक विश्लेषणगतिशील विश्लेषण (सैंडबॉक्सिंग)कोड विश्लेषणसुरक्षा वर्चुअलाइजेशनहार्डवेयर सुरक्षाबाइनरी विश्लेषण
GitHublfi-project/lfi

lfi

LFI के लिए शीर्ष-स्तरीय भंडार: व्यावहारिक, कुशल और सुरक्षित सॉफ्टवेयर-आधारित सैंडबॉक्सिंग

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

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

सभी देखें →

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

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

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

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

लाइटवेट फॉल्ट आइसोलेशन (LFI)

लाइटवेट फॉल्ट आइसोलेशन (LFI) परियोजना के शीर्ष-स्तरीय रिपॉजिटरी में आपका स्वागत है।

LFI क्या है?

LFI नेटिव कोड को सैंडबॉक्स करने की एक प्रणाली है। WebAssembly और Native Client की तरह, LFI सैंडबॉक्स किए गए कोड को इन-प्रोसेस (अर्थात, होस्ट एप्लिकेशन के समान एड्रेस स्पेस में) अलग करता है। वर्तमान में, हम Arm64 और x86-64 लक्ष्यों का समर्थन करते हैं, और प्रायोगिक RISC-V समर्थन है।

LFI को मौजूदा कोड, जैसे C/C++ लाइब्रेरीज़ (असेंबली कोड सहित) और डिवाइस ड्राइवरों को सैंडबॉक्स करने के लिए जमीन से ऊपर तक डिज़ाइन किया गया है।

LFI निम्नलिखित लक्ष्यों को प्राप्त करना चाहता है:

  • अनुकूलता: LFI का उपयोग लगभग सभी मौजूदा C/C++/असेंबली कोड को बिना संशोधित किए सैंडबॉक्स करने के लिए किया जा सकता है, मौजूदा सिस्टम कॉल इंटरफेस के साथ काम करता है, आदि।
  • प्रदर्शन: LFI का उद्देश्य गैर-सैंडबॉक्स किए गए कोड की तुलना में न्यूनतम ओवरहेड है।
  • सुरक्षा: LFI रनटाइम और कंपाइलर तत्व जब संभव हो सरल और सत्यापन योग्य होने का लक्ष्य रखते हैं।
  • उपयोगिता: उपकरणों को मौजूदा कोड में सैंडबॉक्सिंग को रेट्रोफिट करना जितना संभव हो उतना आसान बनाना चाहिए।

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

LFI वर्तमान में पढ़ने और लिखने को सैंडबॉक्स करते समय नेटिव कोड की तुलना में लगभग 7% (Arm64) या 8% (x86-64) ओवरहेड लगाता है, और केवल लिखने को सैंडबॉक्स करते समय 1.5% (Arm64) या 6% (x86-64) ओवरहेड (SPEC 2017 पर जियोमीन)। LFI कॉन्टेक्स्ट स्विच (यानी सैंडबॉक्स और होस्ट एप्लिकेशन के बीच) केवल 10s चक्र लेते हैं, और LFI एक ही एड्रेस स्पेस में हजारों सैंडबॉक्स का समर्थन कर सकता है: ~64K (Arm64) या ~3K (x86-64), प्रत्येक सैंडबॉक्स को 4GiB तक मेमोरी दी गई है।

रिपॉजिटरीज़

  • lfi-runtime: LFI प्रोग्राम लोड करने, होस्ट कॉल को संभालने और सत्यापन चलाने के लिए जिम्मेदार रनटाइम।
  • lfi-verifier: LFI सत्यापक।
  • lfi-rewriter: GNU असेंबली के लिए LFI रीराइटर, और लिंकिंग के बाद बाइनरी परिवर्तन करने के लिए एक पोस्ट-लिंकर उपकरण (केवल x86-64 पर आवश्यक)।
  • lfi-bind: LFI सैंडबॉक्स के अंदर लाइब्रेरी चलाने के लिए ट्रैम्पोलिन और आरंभीकरण रूटीन उत्पन्न करने का एक उपकरण।
  • lfi-llvm-toolchain: LLVM-आधारित LFI कंपाइलर टूलचेन बनाने के लिए स्क्रिप्ट, साथ ही एक sysroot जिसमें compiler-rt, musl, libc++, और mimalloc शामिल हैं।
  • llvm-project: LLVM परियोजना का हमारा विकास फोर्क।
  • lfi-specification: LFI विनिर्देश दस्तावेज़ के लिए LaTeX स्रोत।
  • lfi-bench: LFI प्रदर्शन मूल्यांकन करने के लिए लाइब्रेरी और बेंचमार्क का एक संग्रह।

आरंभ करना

LFI के साथ आरंभ करने के लिए, आपको एक LFI कंपाइलर की आवश्यकता होगी। आप इसे https://github.com/lfi-project/lfi-llvm-toolchain से प्राप्त कर सकते हैं। पूर्व-निर्मित aarch64 और x86-64 कंपाइलर रिलीज़ में होस्ट किए गए हैं: https://github.com/lfi-project/lfi/releases/latest। अपने आर्किटेक्चर के अनुसार aarch64-lfi-clang.tar.gz या x86_64-lfi-clang.tar.gz बंडल डाउनलोड करें (या aarch64-lfi-clang-host-x86_64.tar.gz यदि आप x86-64 से aarch64 पर क्रॉस कंपाइल करना चाहते हैं)।

आर्काइव खोलने के बाद, आपको इस प्रकार की एक निर्देशिका संरचना दिखाई देनी चाहिए:

root@kitploit:~
├── bin
│   ├── LLVM tools (clang, lld, ...)
├── include
├── lfi-bin
│   ├── lfi-postlink
│   ├── lfi-rewrite
│   ├── lfi-run
│   ├── lfi-verify
│   ├── ARCH-lfi-linux-musl-clang -> ../bin/clang
│   └── ARCH-lfi-linux-musl-clang++ -> ../bin/clang++
├── lfi-clang
│   ├── ARCH-lfi-linux-musl-clang -> ../bin/clang
│   └── ARCH-lfi-linux-musl-clang++ -> ../bin/clang++
├── lib
├── libexec
├── share
└── sysroot

आप lfi-bin निर्देशिका को अपने PATH में जोड़ना चाहेंगे। यदि आपके पास पहले से एक अलग इंस्टॉलेशन के माध्यम से LFI उपकरण स्थापित हैं, तो इसके बजाय केवल lfi-clang को अपने PATH में जोड़ने पर विचार करें।

एक बार जब आपके पास कंपाइलर हो, तो आप एक सरल C या C++ प्रोग्राम बना सकते हैं:

root@kitploit:~
#include <stdio.h>
int main() {
    printf("Hello from LFI\n");
    return 0;
}

lfi-run का उपयोग करके संकलित करें और चलाएँ:

root@kitploit:~
$ aarch64-lfi-linux-musl-clang hello.c -O2 -o hello -static-pie
$ lfi-run -v ./hello
Hello from LFI

आप पूर्व-निर्मित आर्काइव से पूर्व-निर्मित lfi-run उपकरण का उपयोग कर सकते हैं। आप स्रोत से LFI रनटाइम भी आसानी से बना सकते हैं:

root@kitploit:~
git clone https://github.com/lfi-project/lfi-runtime
cd lfi-runtime
meson setup build
cd build
ninja
./tools/lfi-run/lfi-run ...

lfi-run उपकरण मुख्य रूप से बेंचमार्किंग और परीक्षण के लिए है। यह डिफ़ॉल्ट रूप से सत्यापन नहीं चलाता है (सक्षम करने के लिए -v पास करें), और यह डिफ़ॉल्ट रूप से पूर्ण फ़ाइल सिस्टम एक्सेस की अनुमति देता है। अधिक जानकारी के लिए उपयोग (lfi-run --help) देखें।

अगले कदम

अपना पहला LFI प्रोग्राम बनाने और चलाने के बाद, आप कई और दिशाओं का अनुसरण करना चाह सकते हैं। कुछ सुझावों के लिए निम्नलिखित गाइड देखें:

  • SPEC 2017 और lfi-bench के साथ बेंचमार्किंग सेट करना: गाइड।
  • लाइब्रेरी को सैंडबॉक्स करने के लिए LFI का उपयोग करना: गाइड।
  • LFI कैसे काम करता है, इसके बारे में अधिक जानना: गाइड।
  • कस्टम रनटाइम बनाने के लिए liblfi का उपयोग करना: गाइड

शोध रिपॉजिटरी

यह रिपॉजिटरी पहले zyedidia/lfi पर मौजूद थी और इसमें LFI का प्रारंभिक कार्यान्वयन था। वे स्रोत lfi-research शाखा पर पाए जा सकते हैं।

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