आरईए और ओपनकोड: स्थापना और पहली जांच

Written by

in

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

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

क्या REA को अद्वितीय बनाता है

आरईए कई प्लेटफार्मों और विश्लेषण के प्रकारों के लिए व्यापक समर्थन के साथ रिवर्स इंजीनियरिंग के क्षेत्र में खड़ा है:

  • मूल बायनेरिज़: डिस्सेम्बली और डीकंपाइलेशन के लिए हॉपर, घिड्रा, आईडीए या कुना
  • जावास्क्रिप्ट अनुप्रयोग और इलेक्ट्रॉन: इलेक्ट्रॉन मॉड्यूल, आयात और सीमाओं का स्थिर विश्लेषण
  • प्रबंधित कोड: .NET असेंबली का विश्लेषण
  • वास्तविक समय विश्लेषण: प्रक्रिया व्यवहार की निगरानी
  • नेटवर्क ट्रैफ़िक: HTTP/S अनुरोधों और प्रतिक्रियाओं का कैप्चर और विश्लेषण
  • मोबाइल एप्लिकेशन: Android और iOS के लिए APK और IPA फ़ाइलों का विश्लेषण
  • एंबेडेड सॉफ़्टवेयर: एम्बेडेड सिस्टम और IoT उपकरणों का विश्लेषण
  • मॉडल फ़ाइलें: GGUF और सेफ़्टेंसर मेटाडेटा निकालना
  • GPU कोड ऑब्जेक्ट: CUDA और HIP कर्नेल का विश्लेषण
  • गेम सहेजना: गेम लॉजिक और निष्पादन योग्य फ़ाइलों को पुनर्स्थापित करना

बुनियादी वास्तुकला और दर्शन

आरईए तीन-चरणीय अनुसंधान प्रक्रिया का पालन करता है जो रिवर्स इंजीनियरिंग को डेवलपर्स के लिए सुलभ बनाता है:

  1. निरीक्षण: REA विश्लेषण टूल से जुड़ता है और लक्ष्य (बाइनरिज़, एप्लिकेशन, वेबसाइट) की जांच करता है
  2. विश्लेषण: कोड के माध्यम से पता लगाता है, नियमों और व्यवहार का निर्धारण करता है
  3. रिकवरी: एजेंट व्यवहार को समझाने और कार्यान्वयन का निर्माण या परीक्षण करने के लिए परिणामों का उपयोग करता है

यह प्रक्रिया एआई एजेंट को जटिल सवालों के जवाब देने की अनुमति देती है, जैसे: “समझें कि नोट्स ऐप में खोज कैसे काम करती है, मुझे सबूत दिखाएं, और मेरे प्रोजेक्ट के लिए एक समान सुविधा बनाएं।”

उपयोग के व्यावहारिक उदाहरण

1. मोबाइल एप्लिकेशन का विश्लेषण

REA पुनर्प्राप्ति के लिए Android APK फ़ाइलों का विश्लेषण कर सकता है:

  • मेनिफेस्ट में घोषणाएं और अनुमतियां;
  • वर्ग विधियाँ और निर्भरताएँ;
  • देशी पुस्तकालयों के लिंक;
  • नेटवर्क समापन बिंदु और डेटा प्रवाह।

उदाहरण के लिए, एजिस ऑथेंटिकेटर के विश्लेषण से पता चला कि हर 30 सेकंड में छह अंकों का प्राधिकरण कोड कैसे बदलता है: इसने जांच की कि समय-आधारित कोड जेनरेशन (टीओटीपी) कैसे काम करता है।

2. डेस्कटॉप एप्लिकेशन फ़ंक्शन एक्सट्रैक्शन

विंडोज़ कैलकुलेटर में % बटन का विश्लेषण REA की क्षमताओं को प्रदर्शित करता है:

  • संदर्भ के आधार पर अलग-अलग व्यवहार को परिभाषित करें (+ या × के बाद);
  • तर्क को समझने के लिए असेंबली निर्देशों को पार्स करना;
  • गणितीय संक्रियाओं को निकालना और समझाना;
  • नियमों को पुनर्स्थापित करना: “+ के बाद: पहली संख्या का 10%” और “× के बाद: 10% को 0.1 में बदलें।”

3. वेब एप्लिकेशन एपीआई को पुनर्स्थापित करना

आरईए एक ब्राउज़र सत्र को रिकॉर्ड कर सकता है और इसे एक आरएल वातावरण के रूप में पुनर्निर्माण कर सकता है जहां एआई एजेंट मूल एप्लिकेशन को चलाए बिना फ़ोल्डरों के साथ काम करने जैसे कार्य करता है।

4. गेम लॉजिक को पुनर्स्थापित करना

डीएक्स-बॉल केस ने दिखाया कि कैसे आरईए ने रिवर्स-इंजीनियरिंग सी कोड द्वारा 1996 के विंडोज गेम से साउंडस्केप गणना को बहाल किया जो 3,205 परीक्षण मामलों के माध्यम से चलता है और मूल संकलित कोड से मेल खाता है।

तकनीकी क्षमताएं

मूल विश्लेषण

  • गहरे बाइनरी फ़ाइल विश्लेषण के लिए हॉपर, घिड्रा, आईडीए या कुना के साथ काम करता है
  • ईएलएफ, पीई, मच-ओ और अन्य निष्पादन योग्य फ़ाइल स्वरूपों का समर्थन करता है
  • छद्म कोड, असेंबलर, प्रतीक और कॉल निकालता है
  • मूल टूल लॉन्च किए बिना ऑफ़लाइन विश्लेषण करता है

जावास्क्रिप्ट विश्लेषण

  • Node.js और इलेक्ट्रॉन अनुप्रयोगों का विश्लेषण करता है
  • मॉड्यूल आयात और निर्भरता को ट्रैक करता है
  • ब्राउज़र कनेक्शन के माध्यम से वास्तविक समय में व्यवहार को कैप्चर करता है
  • Извлекает source maps и минифицированный код

सुरक्षा

  • पीई प्रमाणपत्रों का स्थैतिक विश्लेषण (प्रामाणिक कोड)
  • रक्षा तंत्र का विश्लेषण (PIE, NX, RELRO, CFG)
  • आयात और डीएलएल का मानचित्रण
  • क्रैश रिपोर्ट का विश्लेषण (Apple IPS)

REA क्या लौटाता है

आरईए एजेंट को बिना कारण के तैयार निष्कर्ष नहीं देता है। प्रत्येक प्रश्न का परिणाम सबूतों के साथ-साथ निष्कर्ष है जिस पर वे आधारित हैं। उद्देश्य के आधार पर, प्रतिक्रिया में शामिल हैं:

  • कोड से लिंक – विशिष्ट फ़ाइलें और लाइनें जहां अध्ययन के तहत फ़ंक्शन कार्यान्वित किया जाता है।
  • स्यूडोकोड और असेंबलर – देशी बायनेरिज़ के लिए: कॉल के बीच विघटित फ़ंक्शन, निर्देश और कनेक्शन।
  • एप्लिकेशन संरचना – जावास्क्रिप्ट और इलेक्ट्रॉन के लिए: मॉड्यूल, आयात, मार्ग, आईपीसी और मूल ऐड-ऑन के साथ कनेक्शन।
  • मेटाडेटा और तथ्य – घोषणापत्र, प्रमाणपत्र, हस्ताक्षर, प्रारूप शीर्षलेख और अन्य स्थिर डेटा।
  • प्रतिबंध – वे स्थान जिन्हें सुलझाया नहीं जा सका, एक नोट के साथ कि वास्तव में क्या अज्ञात है।

एजेंट इस डेटा का उपयोग व्यवहार को समझाने, स्पष्ट प्रश्नों का उत्तर देने, या इसके कार्यान्वयन को इकट्ठा करने और परीक्षण करने के लिए करता है। यह साक्ष्य और स्पष्ट सीमाओं की उपस्थिति है जो मॉडल के एक साधारण अनुमान से आरईए परिणाम को अलग करती है।

शुरू करने से पहले

यह माना जाता है कि ओपनकोड पहले से ही स्थापित है और मॉडल उससे जुड़ा हुआ है। Node.js 22.23.4+, 24.22.1+ या 26.12.1+ की आवश्यकता REA को ही है, इसलिए संस्करण की जाँच करें:

node -v

चरण 1: REA को OpenCode से कनेक्ट करें

REA एक MCP सर्वर के रूप में OpenCode के साथ पंजीकृत होता है। टर्मिनल में चलाएँ:

npx rea-agents@latest setup

ओपनकोड को सीधे निर्दिष्ट करने के लिए, इसके पहचानकर्ता <कोड>ओपनकोड का उपयोग करें:

npx rea-agents@latest setup --client opencode

क्या सेटअप करता है:

  • REA को MCP सर्वर के रूप में पंजीकृत करता है;
  • वर्कफ़्लो निर्देश जोड़ता है;
  • मौजूदा कॉन्फ़िगरेशन की बैकअप प्रतिलिपि बनाता है;
  • परिवर्तन लागू करने से पहले पुष्टि मांगता है।

महत्वपूर्ण बिंदु:
पहले प्रयोग के लिए, आप वैकल्पिक हॉपर इंस्टॉलेशन को छोड़ सकते हैं। सेटअप पूरा होने के बाद, OpenCode को पुनरारंभ करें: सत्र से बाहर निकलें और opencode को फिर से चलाएँ।

कनेक्शन जांचें:

npx -y rea-agents@latest doctor --client opencode --json

सफल परिणाम: <कोड>“स्वस्थ”: सत्य।

फिर एजेंट से पूछें:

“जांचें कि REA कनेक्ट है और मुझे दिखाएं कि आप कौन से REA टूल का उपयोग कर सकते हैं।”

चरण 2: पहली जांच

आरईए अनुप्रयोगों को लॉन्च किए बिना उनका विश्लेषण कर सकता है।

  1. उदाहरण डाउनलोड करें:
    Download https://rea.tools/examples/notes-example.zip
    

    संग्रह को notes-example

  2. फ़ोल्डर में अनपैक करें

  3. एजेंट को एक कार्य दें:

    “/absolute/path/to/notes-example पर ऐप का निरीक्षण करने के लिए REA का उपयोग करें। पता लगाएं कि जब मैं नोट्स निर्यात करें पर क्लिक करता हूं तो क्या होता है। दिखाएं कि नोट्स.सीएसवी कहां लिखा गया है, इसमें कौन से फ़ील्ड हैं, और प्रासंगिक फ़ाइलें और लाइनें हैं।”

अपेक्षित प्रतिक्रिया:
<ब्लॉककोट>“बटन एक <कोड>नोट्स:एक्सपोर्ट संदेश भेजता है। मुख्य प्रक्रिया नोट्स को सीएसवी के रूप में प्रारूपित करती है और उपयोगकर्ता के डाउनलोड फ़ोल्डर में <कोड>नोट्स.सीएसवी लिखती है। कॉलम <कोड>आईडी और <कोड>शीर्षक हैं।”

चरण 3: घिद्रा स्थापना और मूल विश्लेषण

देशी बायनेरिज़ (निष्पादनयोग्य और लाइब्रेरीज़) का विश्लेषण करने के लिए, आरईए एक विश्लेषण प्रदाता का उपयोग करता है। सबसे किफायती मुफ्त विकल्प एनएसए का घिड्रा है। उपकरण उस कंप्यूटर पर एक बार स्थापित किया जाता है जहां REA चलता है।

आपको क्या चाहिए

  • 64-बिट JDK 21 या बाद का संस्करण, जिसमें जावा कंपाइलर (javac) शामिल है।
  • रिलीज़ पृष्ठ से घिद्रा संग्रह।

स्थापना

  1. 64-बिट JDK 21 या बाद का संस्करण स्थापित करें। अपने कंप्यूटर आर्किटेक्चर के लिए एक पैकेज चुनें।
  2. रिलीज़ पेज पर संपत्ति सूची से Ghidra डाउनलोड करें और ghidra_…_PUBLIC_...zip संग्रह को अनज़िप करें। रिलीज़ संग्रह लें, न कि “स्रोत कोड।”
  3. अनपैक्ड फ़ोल्डर ढूंढें जिसमें ghidraRun या ghidraRun.bat शामिल है। GHIDRA_INSTALL_DIR वेरिएबल के लिए इस पथ की आवश्यकता होगी।

जावा की जाँच करें. पहला कमांड java.home प्रिंट करता है – यह पथ JAVA_HOME के लिए आवश्यक है। दूसरा पुष्टि करता है कि कंपाइलर स्थापित है:

java -XshowSettings:properties -version
javac -version

घिद्रा कनेक्शन

विंडोज़ (पॉवरशेल):

$env:GHIDRA_INSTALL_DIR = "C:/tools/ghidra_12.1.4_PUBLIC"
$env:JAVA_HOME = "C:/tools/jdk-21"
npx -y rea-agents@latest doctor --provider ghidra --json
npx -y rea-agents@latest setup

मैकओएस/लिनक्स:

export GHIDRA_INSTALL_DIR="/absolute/path/to/ghidra_12.1.4_PUBLIC"
export JAVA_HOME="/absolute/path/to/jdk-21"
npx -y rea-agents@latest doctor --provider ghidra --json
npx -y rea-agents@latest setup

पथों को अपने पथों से बदलें. कमांड को एक टर्मिनल सत्र में रखें: पर्यावरण चर सेट करने के बाद, सेटअप को फिर से चलाएं, कॉन्फ़िगरेशन अपडेट की पुष्टि करें और ओपनकोड को पुनरारंभ करें।

प्रदाता जांच को एक सफल रिपोर्ट लौटानी चाहिए:

npx -y rea-agents@latest doctor --provider ghidra --json

मूल विश्लेषण उदाहरण

एजेंट को निष्पादन योग्य फ़ाइल का पूरा पथ दें और प्रदाता निर्दिष्ट करें:

“/absolute/path/to/program को एक्सप्लोर करने के लिए कॉन्फ़िगर किए गए प्रदाता के साथ REA का उपयोग करें। फ़ंक्शंस और लाइनों को सूचीबद्ध करें, फिर कोड के संदर्भ में उपयोगकर्ता इनपुट को संभालने वाले हिस्से को समझाएं।”

या सीधे टर्मिनल से कमांड चलाएँ:

npx -y rea-agents@latest function "/absolute/path/to/program" main --provider ghidra --json

लक्ष्य प्रोग्राम की फ़ंक्शंस की सूची से main को फ़ंक्शन नाम या पते से बदलें। परिणाम में छद्मकोड, असेंबलर और कॉल के बीच संदर्भ शामिल हैं।

दूसरे प्रकार के सॉफ़्टवेयर का विश्लेषण

लक्ष्य सॉफ़्टवेयर श्रेणी चुनें:

  • जावास्क्रिप्ट / इलेक्ट्रॉन – Node.js और npm की आवश्यकता है। मार्गदर्शिका.
  • वेबसाइट – क्रोम, क्रोमियम या एज ब्राउज़र की आवश्यकता है। मार्गदर्शिका.
  • Android APK – JADX और JDK 17+ की आवश्यकता है। मैनुअल।
  • मूल निष्पादन योग्य – हॉपर, घिड्रा या आईडीए की आवश्यकता है। मार्गदर्शिका.
  • .NET असेंबली – Node.js और npm की आवश्यकता है। मैनुअल.

टर्मिनल से REA का उपयोग करना

जावास्क्रिप्ट/इलेक्ट्रॉन एप्लिकेशन का स्थैतिक विश्लेषण

npx -y rea-agents@latest analyze-javascript-application "/absolute/path/to/app" --json

पथ को एप्लिकेशन या .asar फ़ाइल वाले फ़ोल्डर से बदलें।

इलेक्ट्रॉन एप्लिकेशन .asar फ़ाइल कहां खोजें:

  • Windows: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar
  • macOS: /Applications/<App>.app/Contents/Resources/app.asar
  • Linux: /opt/<App>/resources/app.asar

रीआ कमांड की वैश्विक स्थापना

npm install --global rea-agents

इसके बाद, rea --help कमांड उपलब्ध है।

कर्ल (macOS / Linux) के माध्यम से इंस्टालेशन

curl -fsSL https://raw.githubusercontent.com/morluto/rea/main/install.sh | bash

स्थापना के बाद, एजेंट को कॉन्फ़िगर करने के लिए निर्देशों का पालन करें। यदि सेटअप मेनू प्रकट नहीं होता है, तो rea setup चलाएँ।

अपडेट करें और हटाएं

REA अपडेट

npx rea-agents@latest setup

वैश्विक स्थापना के लिए: rea update

REA को हटा रहा है

npx rea-agents@latest uninstall

मदद मिल रही है

  • FAQ: rea.tools/faq/ – अपडेट, एजेंटों और विश्लेषण के बारे में त्वरित उत्तर
  • मार्गदर्शिकाएँ: rea.tools/guides/ – बाइनरी, इलेक्ट्रॉन और ब्राउज़र विश्लेषण के लिए उदाहरण
  • GitHub मुद्दे: github.com/morluto/rea/issues – किसी समस्या की रिपोर्ट करें
  • कलह: discord.gg/GkcryMnJDM – प्रश्न, जांच और कार्य प्रगति पर

सामान्य समस्याएं

OpenCode REA नहीं देखता

सेटअप के बाद ओपनकोड को पुनरारंभ करें। कनेक्शन का परीक्षण करने के लिए <कोड>डॉक्टर कमांड का उपयोग करें:

npx -y rea-agents@latest doctor --client opencode --json

प्रदाता को कॉन्फ़िगरेशन की आवश्यकता है

घिडरा रन के लिए:

npx -y rea-agents@latest doctor --provider ghidra --json

रिपोर्ट विफल परीक्षण और सुझाए गए अगले चरण को दिखाएगी।

Windows, WSL और रिक्त स्थान वाले पथ

  • Windows क्लाइंट के लिए PowerShell का उपयोग करें
  • यदि एजेंट WSL के अंदर चल रहा है, तो उस Linux सिस्टम के अंदर Node.js और REA इंस्टॉल करें और Linux पथ का उपयोग करें
  • टर्मिनल में, उद्धरण चिह्नों में रिक्त स्थान के साथ पथ संलग्न करें

macOS पर हॉपर सेट करना

यदि macOS आपसे ऑटोमेशन की अनुमति मांगता है, तो सिस्टम प्राथमिकता में REA चलाने वाले ऐप को अनुमति दें: सिस्टम प्राथमिकता → गोपनीयता और सुरक्षा → ऑटोमेशन, फिर पुनः प्रयास करें।

लिंक

https://github.com/morluto/rea
https://rea.tools/
https://rea.tools/get-started/
https://rea.tools/guides/
https://opencode.ai/
https://opencode.ai/docs/
https://opencode.ai/docs/mcp-servers/

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

DemensDeum
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.