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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Glass — Glass - एक तेज़ और मुफ़्त IDA Pro विकल्प | Kitploit
उपकरण/GitHubGitHub/azw413/glass
एंड्रॉइड सुरक्षाएम्बेडेड सिस्टम सुरक्षास्थैतिक विश्लेषणआईओएस सुरक्षारिवर्स इंजीनियरिंगस्क्रिप्टिंग और स्वचालनडीबगर्समोबाइल सुरक्षाबाइनरी विश्लेषणफर्मवेयर विश्लेषण
GitHubazw413/glass

Glass

191122 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

Glass - एक तेज़ और मुफ़्त IDA Pro विकल्प

रिपॉजिटरी देखें

Glass

अर्थात पारदर्शी और चिकना

एक तेज़, नेटिव, मोबाइल-ऐप प्रथम इंटरैक्टिव डिसअसेंबलर। Android / iOS रिवर्स इंजीनियरिंग वर्कफ़्लो के लिए IDA Pro का आध्यात्मिक उत्तराधिकारी, जो इनके चारों ओर निर्मित है:

  • smali APK / DEX / smali हैंडलिंग के लिए
  • armv8-encode AArch64 और ARMv7 (A32 / Thumb) के लिए — नेटिव .so, iOS Mach-O
  • gpui (Zed) GPU-एक्सेलरेटेड नेटिव UI के लिए
  • redb कंटेंट-एड्रेस्ड पर्सिस्टेंस के लिए
  • एक अंतर्निहित MCP सर्वर ताकि कोई भी MCP-अवेयर होस्ट (Claude Desktop, Cursor, Zed) Glass को सीधे चला सके
  • rquickjs स्क्रिप्टेबल प्लगइन्स के लिए (योजनाबद्ध)

लाइसेंस: GPL-3.0-only (smali से प्राप्त)।

क्यों?

हम सभी ने IDA Pro का उपयोग किया है — यह रिवर्सिंग के लिए उद्योग मानक है और इसके पीछे वर्षों के प्लगइन्स हैं, लेकिन यह धीमा, महंगा और पुराना है। Glass 100% Rust नेटिव है जिसमें सहज इंटरैक्शन के लिए GPU-एक्सेलरेटेड UI है। यह 100% मुफ्त और ओपन सोर्स भी है — कृपया योगदान करें।

विशेषताएँ

  • बेहद स्मूद 120fps GPU एक्सेलरेटेड रेंडरिंग
  • बिजली जैसी तेज़ विश्लेषण: अधिकांश बड़े बाइनरी के लिए 1-2 सेकंड, जबकि IDA Pro पर मिनट लगते हैं
  • AArch64 और ARMv7 (ARM मोड + Thumb) डिसअसेंबली — iOS arm64 / arm64e और दोनों सामान्य Android ABIs को कवर करती है।
  • पूर्ण रूप से लिंक्ड और एनोटेटेड डिसअसेंबली, जिसमें कंट्रोल फ्लो लाइनें, टिप्पणियों में डेटा लिटरल्स, अन्य फ़ंक्शंस के क्लिक करने योग्य लिंक शामिल हैं। आसान दृश्यता के लिए सभी रंगीन हैं।
  • कंट्रोल फ्लो ग्राफ़ जो बेसिक ब्लॉक्स और अन्य फ़ंक्शंस के क्लिक करने योग्य लिंक दिखाते हैं
  • DEX, कोड और डेटा सेक्शन में सिंबल या स्ट्रिंग लिटरल्स के लिए पूर्ण प्रोजेक्ट खोज
  • सेक्शन डेटा के साथ नेटिव बाइनरी लेआउट का अवलोकन
  • कॉलर्स की Xref खोज, डेटा के संदर्भ
  • बंडल के हर नेटिव आर्टिफैक्ट में बाइनरी और इंस्ट्रक्शन खोज (इसलिए लाइब्रेरी की arm64-v8a और armeabi-v7a दोनों कॉपियाँ एक ही क्वेरी में खोजी जाती हैं)। मास्किंग + गैप्स के साथ बाइट-पैटर्न ग्रामर; AArch64 और ARMv7 के लिए टाइप्ड-असेंबली ग्रामर, ISA-अवेयर ऑटोकंप्लीट ड्रॉपडाउन के साथ।
  • किसी भी लाइन (कोड या डेटा) को रंग और/या टिप्पणी के साथ एनोटेट करें ताकि आप इसे बाद में आसानी से फिर से ढूँढ सकें।
  • इंस्ट्रक्शंस और डेटा का इन-प्लेस संपादन (किसी आइटम पर डबल-क्लिक करें)। Smali क्लास एडिटर + AArch64 / ARMv7 इंस्ट्रक्शन एडिटर; एस्केप हैच के रूप में उसी एड्रेस पर बाइट-स्तरीय हेक्स व्यू खोलने के लिए किसी भी लिस्टिंग पंक्ति पर राइट-क्लिक करें।
  • MCP सर्वर हर विश्लेषण क्रिया को किसी भी MCP-अवेयर होस्ट के लिए एक टूल के रूप में उजागर करता है — Claude Desktop, Cursor, Zed।
  • Glass के लिए थीम और प्रत्येक वर्कस्पेस के लिए चयन योग्य पृष्ठभूमि रंग भी।

स्क्रीनशॉट

मुख्य व्यूज़ की एक सैर — किसी भी थंबनेल पर क्लिक करके इसे पूर्ण आकार में देखें।

स्क्रिप्टिंग

GUI में Glass जो भी विश्लेषण करता है, वह एक CLI क्रिया के रूप में भी उजागर होता है जो संरचित JSON उत्पन्न करता है। वही glass बाइनरी स्वचालन का प्रवेश बिंदु है — एक सबकमांड चुनें और आपको एक-शॉट, स्क्रिप्टेबल परिणाम मिलता है, जो jq पाइपलाइनों और CI के लिए एकदम सही है।```sh

What classes ship in this APK?

glass classes ./app.apk --package com.example. --text

Who calls glass::main, by address?

glass callers ./libfoo.so --artifact libfoo.so --symbol "glass::main"

Every onCreate across DEX, machine-readable:

glass search ./app.apk onCreate | jq '.data.hits[] | select(.kind=="method")'

All ObjC + Swift types in an iOS bundle (filter by kind if you like):

glass types ./app.ipa --kind swift-class --text

Drill into one type — methods, ivars, properties for ObjC;

fields + vtable for Swift:

glass type ./app.ipa --artifact app --name blackjack.ContentView

root@kitploit:~
मानव-पठनीय रेंडरिंग के लिए `--text` पास करें, JSON के लिए इसे छोड़ दें।

पूर्ण संदर्भ: **[docs/cli-api.md](https://github.com/azw413/glass/blob/HEAD/docs/cli-api.md)**।

इसका मतलब है कि आप सामान्य कार्यों को स्क्रिप्ट और स्वचालित कर सकते हैं। 


## Skills और MCP

हर CLI क्रिया एक अंतर्निहित MCP (Model Context Protocol) सर्वर के माध्यम से एक टूल के रूप में भी उजागर होती है, इसलिए कोई भी MCP-सक्षम होस्ट — Claude Desktop, Cursor, Zed, आपका अपना क्लाइंट — रिवर्सिंग कार्यों में मदद के लिए सीधे Glass को चला सकता है।```sh
# Print the machine-readable skill catalog (one JSON object listing
# every verb with its schema and an example invocation).
glass skills

# Run as an MCP stdio server. Plug into any MCP host's tool list.
glass mcp

Claude Desktop के साथ पंजीकरण करने के लिए, Glass को ~/Library/Application Support/Claude/claude_desktop_config.json में जोड़ें:```json { "mcpServers": { "glass": { "command": "/usr/local/bin/glass", "args": ["mcp"] } } }

root@kitploit:~
मॉडल फिर किसी भी बंडल पर `inspect`, `symbols`, `disasm`, `cfg-of`, `dex-callers`, `search` और हर अन्य क्रिया को कॉल कर सकता है, जिस पर आप इसे इंगित करते हैं। टूल परिणाम उसी JSON envelope में वापस आते हैं जो आपको CLI से मिलता है।


## खोज

तीन पूरक इंजन, सभी GUI में एक ही ⌘F पैलेट से और CLI / MCP क्रियाओं के रूप में उपलब्ध हैं।

### पूर्ण-पाठ खोज

बंडल-व्यापी फ़ज़ी मिलान, जो नेटिव प्रतीकों, DEX कक्षाओं / विधियों / फ़ील्ड्स, और कोड तथा डेटा अनुभागों में स्ट्रिंग लिटरल्स पर लागू होता है। टाइप करते ही लाइव-फ़िल्टर होता है; परिणाम सही दृश्य पर भेजे जाते हैं (नेटिव पतों के लिए listing, DEX लक्ष्यों के लिए smali व्यूअर, डेटा हिट्स के लिए hex दृश्य)। लोड होने के बाद इंडेक्स पृष्ठभूमि थ्रेड पर बनते हैं — प्रगति चिप उस दौरान दिखाई देती है।```sh
glass search ./app.apk onCreate                 # all things named like "onCreate"
glass search ./libfoo.so init --limit 20

CLI संदर्भ: search क्रिया docs/cli-api.md में.

बाइनरी खोज

बाइट-स्तरीय पैटर्न इंजन। प्रत्येक अणु 2-वर्णों वाला हेक्स मास्क (c0, e?, ?f, ??) या एक गैप (* = 0..=32 बाइट्स, स्पष्ट सीमाओं के लिए *(min..max)) होता है। मिलान सेक्शनों के बीच विस्तारित नहीं होते। GUI पैलेट में, ⌘2 बाइनरी मोड पर स्विच करता है; Code only चेकबॉक्स (डिफ़ॉल्ट रूप से चालू) स्कैन को टेक्स्ट सेक्शनों तक सीमित करता है, ताकि इंस्ट्रक्शन शेप खोजते समय आप डेटा हिट्स में न डूबें।```sh

returning-true stub finder — mov w0, #1 ; ret

glass bin-search ./libfoo.so --artifact libfoo.so --pattern '20 00 80 52 c0 03 5f d6'

any ADRP+ADD pair with no intervening bytes

glass bin-search ./libfoo.so --artifact libfoo.so --pattern '?? ?? ?? 9? ?? ?? 4? 91'

raw data: find embedded magic

glass bin-search ./libfoo.so --artifact libfoo.so --pattern 'de ad be ef'

root@kitploit:~
पूर्ण व्याकरण + हल किए गए उदाहरण: [`docs/BinSearch.md`](https://github.com/azw413/glass/blob/HEAD/docs/BinSearch.md).

### निर्देश खोज

असेम्बली लिखें, Glass उसे बाइट्स में संकलित करता है। एक `;` से अलग किया गया अनुक्रम [armv8-encode](https://github.com/azw413/armv8-encode) के माध्यम से एन्कोड किया जाता है — **AArch64** (`mov w0, #1`, `adrp x1, *`) और **ARMv7** दोनों मोड में (Thumb `mov r1, r7` / `bxeq lr` / `push {r4-r7, lr}` और A32)। कोई भी वाइल्डकार्ड बाइट इंजन के काम संभालने से पहले ऑपरेंड-बिट मास्क में अनुवादित किए जाते हैं। स्कैन वैश्विक है — बंडल में हर नेटिव आर्टिफैक्ट को सही ISA के एटम प्राप्त होते हैं (जिन Android ऐप्स में `arm64-v8a` और `armeabi-v7a` दोनों लाइब्रेरी होती हैं, उन्हें एक ही क्वेरी में खोजा जाता है)।

GUI में Binary मोड के भीतर, ⌘B **Bytes** और **Asm** व्याकरणों के बीच टॉगल करता है; एक ISA-जागरूक ऑटोकम्प्लीट ड्रॉपडाउन उन वेरिएंट्स को दिखाता है जो आपके टाइप किए गए से अब भी मेल खाते हैं — `r1` AArch64 उम्मीदवारों को फ़िल्टर करता है, `w0` ARMv7 वालों को।

वाइल्डकार्ड:

| टोकन | अर्थ |
|---|---|
| `*` | कोई भी ऑपरेंड (प्रकार चुने गए ऑपकोड से अनुमानित किया जाता है) |
| `#*` | कोई भी इमीडिएट (ऑपकोड पिकर को संकेत देता है) |
| `x`, `w` | कोई भी AArch64 X- या W-श्रेणी का रजिस्टर |
| `r` | कोई भी ARMv7 GPR (`r0..r15`, `sp`, `lr`, `pc`) |
| `<*>`, `<X>`, `<W>`, `<R>`, `<imm>` | ब्रैकेटेड समकक्ष, अन्य सिंटैक्स के भीतर नेस्ट करने के लिए उपयोगी (`[x, #*]`, `[r, #*]`) |```sh
# AArch64 — every `mov w0, #N` (any N)
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'mov w0, #*'

# AArch64 — any ADRP into x1 followed immediately by ADD into the same reg
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'adrp x1, * ; add x1, x1, #*'

# ARMv7 (Thumb) — `mov r1, r*` followed by a return
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'mov r1, r* ; bx lr'

# ARMv7 (any cond) — conditional bx in literal-pool callers
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'bxeq lr'

# every `ret x30` — concrete, no wildcards
glass insn-search ./libfoo.so --artifact libfoo.so --pattern 'ret'

प्रतिक्रिया में bytes_hex होता है जो संकलित मास्क दिखाता है (जैसे adrp x1, * के लिए 01/1f ?? ?? 90/9f) ताकि आप देख सकें कि कौन-से बिट पिन हैं बनाम वाइल्डकार्ड। कैप्चर (<name:kind> पैटर्न में बाद में उसी ऑपरेंड को क्रॉस-रेफर करते हुए) डिज़ाइन किए गए हैं लेकिन अभी लागू नहीं किए गए हैं।

पूर्ण डिज़ाइन + चरणबद्धता: docs/InsnPattern.md। CLI/MCP संदर्भ: insn-search में docs/cli-api.md।

वर्तमान स्थिति

Glass आज Android (APK / DEX / नेटिव .so) और iOS (IPA / Mach-O) ऐप्स को रिवर्स करने के लिए उपयोग योग्य है, जो AArch64 और 32-bit ARMv7 (armeabi-v7a लाइब्रेरी, A32 + Thumb) को लक्षित करते हैं।

क्या काम करता है

फ़ाइल लोडिंग

  • Android बंडल (.apk, .aab), iOS बंडल (.ipa), या किसी भी स्टैंडअलोन ELF / Mach-O बाइनरी (.so, .dylib, रॉ एक्ज़ीक्यूटेबल) को सीधे खोलें — Glass फ़ॉर्मेट का स्वतः पता लगाता है।
  • फ़ैट / यूनिवर्सल Mach-O पारदर्शी रूप से संभाला जाता है: arm64e को प्राथमिकता दी जाती है, सादा arm64 फ़ॉलबैक है। यह बंडल और स्टैंडअलोन फ़ाइलों दोनों पर काम करता है (जैसे glass gui /usr/lib/dyld)।
  • लोडर पाइपलाइन प्रगति रिपोर्ट करती है (आर्काइव पढ़ना → DEX पार्स करना / नेटिव डिसअसेम्बल करना → सिंबल बनाना)।
  • प्रति-आर्टिफैक्ट कंटेंट-एड्रेस्ड आईडी (blake3, बड़ी लाइब्रेरी के लिए rayon-parallel)। एनोटेशन कंटेनर का नहीं, बल्कि आर्टिफैक्ट का अनुसरण करते हैं — दो APK में भेजी गई एक ही libfoo.so (या दो IPA में समान libswiftCore.dylib) विश्लेषण स्थिति साझा करती है।
  • AndroidManifest व्यूअर (बाइनरी XML smali के माध्यम से डिकोड किया गया)।
  • iOS बंडल के लिए Info.plist व्यूअर — बंडल आईडी, एक्ज़ीक्यूटेबल नाम, संस्करण, न्यूनतम OS, और बाकी plist रंग-कोडित XML के रूप में प्रस्तुत।

iOS — IPA / Mach-O

  • IPA को अनज़िप करें, Payload/*.app/ ढूँढें, Info.plist पार्स करें, और अंदर किसी भी फ़ैट बाइनरी से arm64 / arm64e स्लाइस चुनें।
  • मुख्य एक्ज़ीक्यूटेबल और हर Frameworks/*.framework + *.dylib अपने स्वयं के नेटिव आर्टिफैक्ट के रूप में लोड होता है, साथ ही वही Overview + प्रति-सेक्शन डिसअसेम्बली व्यू जो Android .so फ़ाइलों के लिए उपयोग होते हैं।
  • __objc_classlist से स्रोतित Objective-C क्लास ब्राउज़र — क्लास, कैटेगरी, मेथड, ivars, प्रॉपर्टी — डिमैंगल किए गए नामों के साथ (लीगेसी _TtC... Swift मैंगलिंग सहित) और मेथड पतों से लिस्टिंग में क्लिक करने योग्य जंप।
  • __swift5_types से स्रोतित Swift टाइप ब्राउज़र — क्लास, स्ट्रक्चर, एनम उनके फ़ील्ड्स के साथ और (क्लास के लिए) vtables, लिस्टिंग में क्लिक करने योग्य भी।
  • सिंबल मैप ObjC मेथड सिंबल और Swift टाइप सिंबल से समृद्ध किया गया है, इसलिए लिस्टिंग पंक्तियाँ जो पहले कच्चे पतों पर आ जाती थीं, अब हल किए गए नाम दिखाती हैं।

Android — APK / DEX / नेटिव

  • APK में सभी DEX फ़ाइलों में क्लास ट्री।
  • प्रति क्लास Smali लिस्टिंग सिंटैक्स-जागरूक टोकनाइज़ेशन के साथ (डायरेक्टिव, टाइप, मेथड नाम, स्ट्रिंग लिटरल, आदि)।
  • मेथड क्रॉस-रेफरेंस सही क्लास + लाइन पर हल होते हैं।
  • lib/<abi>/ के अंतर्गत नेटिव .so फ़ाइलें प्रति ABI लोड होती हैं; AArch64 (arm64-v8a) और ARMv7 (armeabi-v7a) दोनों को पूर्ण डिसअसेम्बली व्यू मिलते हैं। अन्य ABI (x86 / x86_64) डिकोडर आने तक हेक्स व्यू में चले जाते हैं।

संपादन

  • Smali क्लास संपादक (इनलाइन संपादक खोलने के लिए क्लास हेडर / फ़ील्ड / मेथड पर डबल-क्लिक करें)।
  • AArch64 इन-प्लेस इंस्ट्रक्शन संपादन: नई असेंबली टाइप करें, Glass इसे वापस बाइट्स में एनकोड करता है; स्टेज किए गए परिवर्तन लिस्टिंग में हरे रंग की झलक के रूप में दिखते हैं जब तक आप नए APK / IPA में Export नहीं करते।
  • ARMv7 इन-प्लेस संपादन: समान-चौड़ाई स्वैप, 4-बाइट → 2-बाइट सिकुड़न (Thumb-1 NOP के साथ ऑटो-पैडिंग), और 2-बाइट → 4-बाइट वृद्धि संभालता है जो अगले NOP को उपभोग करती है। असुरक्षित वृद्धि को अस्वीकार करता है जो डाउनस्ट्रीम कोड को स्थानांतरित करेगी।
  • इनलाइन संपादक में ISA-जागरूक ऑटोकम्प्लीट — r1 टाइप करने पर केवल ARMv7 वेरिएंट दिखते हैं; w0 केवल AArch64 दिखाता है।
  • किसी भी लिस्टिंग पंक्ति पर राइट-क्लिक करें → Open hex view here उसी पते पर बाइट-स्तरीय हेक्स संपादक में जाने के लिए, जब टाइप की गई असेंबली संपादक आपकी आवश्यकता व्यक्त नहीं कर सकता।

AArch64 नेटिव (ELF + thin Mach-O)

  • वर्चुअलाइज़्ड रेंडरिंग के साथ लीनियर-स्वीप डिसअसेम्बली — बड़ी लाइब्रेरी सेकंडों में खुलती हैं, मिनटों में नहीं।
  • सिंबल मैप ELF symtab, dynsym, DWARF, .eh_frame FDEs, और संश्लेषित <name>@plt प्रविष्टियों से मर्ज किया गया। C++/Rust/Swift डिमैंगलिंग symbolic-demangle के माध्यम से।
  • ब्रांच ऑपरेंड क्लिक करने योग्य सिंबल संदर्भों के रूप में प्रस्तुत किए जाते हैं; adrp + add/ldr जोड़े डेटा लक्ष्यों पर हल किए जाते हैं, जिनमें कमेंट के रूप में इनलाइन दिखाए गए स्ट्रिंग लिटरल भी शामिल हैं।
  • प्रति-सेक्शन व्यू (कोड सेक्शन डिसअसेम्बली पाते हैं; डेटा सेक्शन हेक्स व्यू पाते हैं)।

ARMv7 नेटिव (ELF)

  • सिंबल एंट्री पॉइंट्स से रिकर्सिव-डिसेंट डिसअसेम्बली ताकि लिटरल पूल, जंप टेबल और इनलाइन डेटा निर्देशों के रूप में गलत-डिकोड न हों। प्रति-सिंबल मोड (ARM बनाम Thumb) लो-बिट मार्कर के माध्यम से सम्मानित किया जाता है।
  • परिवर्तनीय-चौड़ाई Thumb रेंडरिंग: 16-bit Thumb-1 पंक्तियाँ 2 बाइट दिखाती हैं (कोई प्रेत 00 00 पैडिंग नहीं), 32-bit Thumb-2 और A32 4 दिखाते हैं।
  • सिंबल मैप: ELF symtab, DWARF, .eh_frame, और संश्लेषित <name>@plt प्रविष्टियाँ (12-बाइट स्टब)।
  • movw + movt फ्यूज़न: movw R, #lo16 ; movt R, #hi16 निर्देश जोड़ों के बीच पहचाना जाता है और हल किया गया 32-bit कॉन्स्टेंट movt पंक्ति पर ; "..." rodata-स्ट्रिंग कमेंट पाता है।
  • Thumb ldr Rt, [pc, #imm] लिटरल-पूल लोड rodata में एक स्तर डीरेफ़रेंस करते हैं, उसी तरह के इनलाइन स्ट्रिंग कमेंट के लिए जो AArch64 का ADRP+ADD पथ उत्पन्न करता है।
  • कंडीशनल और अनकंडीशनल ब्रांचों पर कंट्रोल-फ्लो एरो गटर (AArch64 के समान लेन असाइनमेंट)।

यूआई

  • ओवरफ्लो-सुरक्षित ड्रॉपडाउन, क्लोज़ बटन, क्लिक-टू-एक्टिवेट के साथ टैब किया हुआ दायाँ पैन।
  • लिस्टिंग, हेक्स और मैनिफ़ेस्ट व्यू पर क्षैतिज + ऊर्ध्वाधर स्क्रॉलबार।
  • फ़ज़ी फ़िल्टर के साथ Cmd-F सिंबल पैलेट। मल्टी-टोकन क्वेरी क्रम में AND-मिलान होती हैं (change me changeMessage और change_me_count ढूँढती है लेकिन dispatchMenuVisibilityChanged नहीं)।
  • बाइनरी / इंस्ट्रक्शन पैलेट (इसमें स्विच करने के लिए ⌘2) हर नेटिव आर्टिफैक्ट को वैश्विक रूप से स्कैन करता है — arm64-v8a + armeabi-v7a वाले Android ऐप्स को प्रति मैच आर्टिफैक्ट + सेक्शन लेबल के साथ एकीकृत परिणाम मिलते हैं।
  • हर व्यू में राइट-क्लिक क्रॉस-रेफरेंस: लिस्टिंग, हेक्स और CFG में References to address / Callers of function / Open hex view here; smali में Callers of method / References to field। परिणाम स्कोप चिप के साथ पैलेट में दिखते हैं; Esc स्कोप को साफ़ करके बंडल-व्यापी खोज पर वापस ले जाता है। इंडेक्स लोड के बाद पृष्ठभूमि थ्रेड पर बनते हैं — प्रगति चिप तब तक दिखती है जब तक कार्य जारी है।
  • थीम्स (View → Theme) चयन योग्य प्रति-विंडो पृष्ठभूमि टिंट के साथ।
  • Cmd-O खोलें, Cmd-N नई विंडो, Cmd-W विंडो बंद करें, Cmd-⇧W फ़ाइल बंद करें (विंडो को लॉन्च-खाली अवस्था में लौटाएं) — Linux / Windows पर समान शॉर्टकट Cmd के बजाय Ctrl उपयोग करते हैं। File → Open Recent (अंतिम 10 बंडल, पथ द्वारा डीडुप्लिकेटेड) और View → Theme। macOS पर ये नेटिव मेनू बार में रहते हैं; Linux / Windows पर (जहाँ gpui कोई नेटिव मेनू नहीं खींचता) Glass विंडो हेडर में अपना Glass / File / View मेनू बार प्रस्तुत करता है।
  • विंडो सीमाएँ + खुले टैब + ट्री विस्तार स्थिति प्रति-बंडल redb में संग्रहीत होती है; पुनः लॉन्च करने पर वहीं खुलता है जहाँ आपने छोड़ा था।

क्या कमी है

  • x86 / x86_64 डिसअसेम्बली (वे कोड सेक्शन वर्तमान में हेक्स व्यू में चले जाते हैं)।
  • ARMv7 इन-प्लेस संपादन जिन्हें बिना निकटवर्ती NOP के बढ़ने की आवश्यकता होती है — आज स्पष्ट त्रुटि के साथ अस्वीकार; समर्थन के लिए सेक्शन-स्तरीय रीलेआउट + ब्रांच-लक्ष्य रीबाइंडिंग की आवश्यकता होगी।
  • iOS entitlements और embedded.mobileprovision पार्सिंग।
  • JNI सिग्नेचर के माध्यम से DEX ↔ नेटिव क्रॉस-रेफरेंस।
  • QuickJS स्क्रिप्टिंग होस्ट।
  • स्क्रॉलबार पर ड्रैग-टू-स्क्रॉल (वर्तमान में केवल दृश्य — ट्रैकपैड / व्हील उपयोग करें)।
  • मैनिफ़ेस्ट में रिसोर्स आईडी डिकोडिंग (resources.arsc पार्सिंग की आवश्यकता होगी)।
  • ARMv7 टाइप की गई असेंबली संपादक: सामान्य रूपों के लिए काम करता है; शिफ्ट किए गए ऑपरेंड (r0, lsl #2) और प्री/पोस्ट-इंडेक्स मेमोरी ([rN, #imm]!, [rN], #imm) पार्स होते हैं लेकिन केवल ठोस रूप से — ब्रैकेट के अंदर कोई वाइल्डकार्ड नहीं।

बिल्ड करना

Glass macOS 13+ (प्राथमिक लक्ष्य, Metal के माध्यम से GPU-त्वरित — किसी अतिरिक्त SDK की आवश्यकता नहीं, Metal फ्रेमवर्क OS के साथ आता है), Linux (X11 या Wayland gpui_linux के माध्यम से, Vulkan-समर्थित), और Windows 10/11 (Direct3D-समर्थित gpui के माध्यम से, MSVC टूलचेन के साथ निर्मित) पर चलता है।

Releases के अंतर्गत macOS के लिए एक रिलीज़ प्रीबिल्ट बाइनरी है, लेकिन यदि आपको स्रोत से बिल्ड करने की आवश्यकता है: अच्छी खबर: यह दो कमांड हैं।

  1. Rust इंस्टॉल करें (यदि आपके पास पहले से नहीं है): ```sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    root@kitploit:~
  2. केवल Linux — gpui की नेटिव निर्भरताएँ इंस्टॉल करें। सबसे आसान तरीका Zed के सेटअप स्क्रिप्ट को चलाना है, जो apt / dnf / pacman / आदि के बारे में जानता है: ```sh curl -sSL https://raw.githubusercontent.com/zed-industries/zed/main/script/linux | bash
    root@kitploit:~

यह libxkbcommon-dev, Wayland और XCB हेडर, Vulkan, ALSA, तथा बाकी टूलचेन को शामिल करता है जिसकी gpui_linux को लिंक करने के लिए आवश्यकता होती है। इनके बिना, बिल्ड लिंक समय पर xkbcommon / wayland-client प्रतीकों के गायब होने के कारण विफल हो जाता है।

यदि आप स्क्रिप्ट नहीं चलाना चाहते हैं, तो Debian / Ubuntu (amd64) पर समतुल्य पैकेज ये हैं: ```sh sudo apt-get update && sudo apt-get install -y
build-essential clang cmake pkg-config
libfontconfig-dev libfreetype-dev
libwayland-dev libxkbcommon-x11-dev
libasound2-dev libvulkan-dev
libzstd-dev libsqlite3-dev libssl-dev
libglib2.0-dev

root@kitploit:~
The build fails early in a dependency build script (`fontconfig was not found in the pkg-config search path`) if `libfontconfig-dev` is missing, and later at link time for the X11/Wayland/Vulkan libraries. `libglib2.0-dev` is needed because the Frida driver links GLib dynamically on Linux (on macOS the Frida devkit bundles it statically) — without it the link fails with `undefined symbol: g_object_unref`.

**केवल Windows — मूल बिल्ड टूलचेन इंस्टॉल करें।** `gpui` के लिए MSVC टूलचेन आवश्यक है (GNU/MinGW टारगेट समर्थित नहीं है)। [winget](https://learn.microsoft.com/windows/package-manager/winget/) का उपयोग करके:   ```powershell
# 1. MSVC compiler, linker, and Windows SDK (the "Desktop development with C++" workload).
winget install --id Microsoft.VisualStudio.2022.BuildTools `
  --override "--quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"

# 2. CMake — tree-sitter (via the Zed `language` crates) builds wasmtime's C API with it.
winget install --id Kitware.CMake

# 3. LLVM/Clang — `bindgen` (frida-sys, gpui, media) needs libclang.dll.
winget install --id LLVM.LLVM

LLVM इंस्टॉलर स्वयं को PATH में नहीं जोड़ता है, इसलिए बिल्ड करने से पहले bindgen को libclang.dll की ओर इंगित करें (इसे System → Environment Variables के माध्यम से स्थायी रूप से सेट करें, या प्रति-शेल): ```powershell $env:LIBCLANG_PATH = "C:\Program Files\LLVM\bin"

root@kitploit:~
इनके बिना बिल्ड निर्भरता बिल्ड स्क्रिप्ट्स में विफल हो जाता है: `linker 'link.exe' not found` (MSVC नहीं है), `failed to spawn 'cmake'` (CMake नहीं है), या `Unable to find libclang` (`LIBCLANG_PATH` नहीं है)। `glass` बाइनरी का स्टैक रिज़र्व MSVC पर स्वचालित रूप से बढ़ा दिया जाता है (`crates/glass-cli/build.rs` देखें), ताकि CLI Windows के छोटे डिफ़ॉल्ट मुख्य-थ्रेड स्टैक को ओवरफ्लो न करे — किसी कार्रवाई की आवश्यकता नहीं है।

3. **क्लोन करें और बिल्ड करें**:   ```sh
git clone https://github.com/azw413/Glass.git
cd glass
cargo build --release -p glass-cli
cp target/release/glass <to somewhere on your PATH>

पहला बिल्ड gpui और उसके साथी क्रेट्स को कंपाइल करेगा और इसमें कई मिनट लगेंगे। बाद के बिल्ड तेज़ होते हैं।

  1. इसे चलाएँ: ```sh

    Open the GUI on an Android APK or iOS IPA — no subcommand needed.

    glass ~/path/to/app.apk glass ~/path/to/app.ipa

    Or on a standalone binary — ELF .so, Mach-O .dylib, or raw

    executable. Fat / universal Mach-O is sliced automatically.

    glass ~/path/to/libfoo.so glass ~/path/to/libBar.dylib glass /usr/lib/dyld

    No args → opens an empty Glass window; use File → Open.

    glass

    Headless bundle inspect

    glass bundle ~/path/to/app.apk

    Inspect persisted state for a bundle

    glass db-dump ~/path/to/app.apk

    root@kitploit:~

हमेशा रिलीज़ बिल्ड का उपयोग करें — डीबग बिल्ड डिसअसेंबली में कई गुना धीमे होते हैं।

.app बंडल की पैकेजिंग

रिलीज़ बाइनरी को Glass.app बंडल में लपेटने के लिए ताकि Finder से डबल-क्लिक लॉन्च किया जा सके:```sh cargo build --release -p glass-cli ./packaging/make-app.sh open dist/Glass.app

root@kitploit:~
बंडल ad-hoc साइन किया गया है (Developer-ID साइन या नोटराइज़ किया हुआ नहीं), इसलिए पहली बार लॉन्च करने पर macOS इसे खोलने से मना कर देगा; Gatekeeper को एक बार बायपास करने के लिए राइट-क्लिक करें → **Open**।

बिना लोकल बिल्ड किए प्रीबिल्ट zip पाने के दो तरीके:

- **नवीनतम `main`** — हर push एक `Glass-app-<sha>.zip` को 14-दिवसीय workflow artifact के रूप में अपलोड करता है। इसे [Actions tab](https://github.com/azw413/Glass/actions) से प्राप्त करें।
- **टैग किया गया release** — एक `v*` टैग (जैसे `v0.1.0`) push करने से वही workflow चालू होता है और इसके अतिरिक्त स्वतः-जनित release notes के साथ एक `Glass-<tag>-macOS.zip` [Releases page](https://github.com/azw413/Glass/releases) पर प्रकाशित किया जाता है।

## कार्यक्षेत्र

| Crate            | उद्देश्य                                                        |
|------------------|------------------------------------------------------------------|
| `glass-core`     | साझा प्रकार (`CodeKind`, IDs)                                   |
| `glass-arch-arm` | AArch64 + ARMv7 डिसअसेंबली, symbol map, PLT synthesis, demangling |
| `glass-arch-dex` | `smali` के ऊपर DEX / smali facade                                |
| `glass-mobile`   | APK + IPA बंडल लोडिंग, native-lib निष्कर्षण, manifest            |
| `glass-db`       | Content-addressed persistence (redb): बंडल, टैब, सेटिंग्स        |
| `glass-device`   | Android (adb) + iOS (usbmux) डिवाइस डिस्कवरी                    |
| `glass-api`      | CLI + MCP + GUI द्वारा साझा किए गए analysis verbs (search, xrefs, CFG, edits) |
| `glass-ui`       | `gpui` फ्रंट-एंड: tree, listing, hex, manifest, palette          |
| `glass-cli`      | हेडलेस इंस्पेक्टर + GUI लॉन्चर                                  |
| `glass-mcp`      | हर CLI verb को एक tool के रूप में उजागर करने वाला MCP सर्वर       |
| `glass-script`   | QuickJS plugin runtime (स्थानधारक)                              |

## रोडमैप

- **iOS गहराई** — Entitlements और `embedded.mobileprovision` पार्सिंग। (ObjC `__objc_classlist` और Swift `__swift5_types` मेटाडेटा पास आ चुके हैं — `glass types` / `glass type` देखें।)
- **x86 / x86_64** — Android `.so` फ़ाइलों के emulator-builds के लिए डिसअसेंबली।
- **आंतरिक स्क्रिप्टिंग** — analysis passes के लिए स्थिर API वाला QuickJS plugin host।
- **उन्नत** — Signed APK पुनर्निर्माण, ARMv7 इन-प्लेस संपादनों पर downstream-shift (ताकि 2→4-बाइट वृद्धियाँ मना करने के बजाय आसन्न कोड से आगे splice कर सकें)।
टूल डाउनलोड करें
एरो गटर, रिज़ॉल्व्ड स्ट्रिंग लिटरल्स, क्लिक करने योग्य सिंबल संदर्भों के साथ AArch64 डिसअसेंबली लिस्टिंग
डिसअसेंबली लिस्टिंग
रंग-कोडित ऑपरेंड्स, कंट्रोल-फ्लो एरो, इनलाइन रिज़ॉल्व्ड स्ट्रिंग लिटरल्स
एक नेटिव फ़ंक्शन के लिए कंट्रोल फ्लो ग्राफ़ जो बेसिक ब्लॉक्स, कंडीशनल और अनकंडीशनल एजेस दिखाता है
कंट्रोल फ्लो ग्राफ़
बिंदीदार कंडीशनल एजेस और रूटेड मल्टी-रैंक लेन्स के साथ प्रति-फ़ंक्शन CFG
एक smali विधि पर आधारित DEX मेथड कॉल ग्राफ़; होवर-विस्तार योग्य कैली नोड्स
DEX कॉल ग्राफ़
होवर-टू-विस्तार कैलीज़, मेथड के smali पर जाने के लिए क्लिक करें
रंगीन आनुपातिक बार और प्रति-सेक्शन विवरण के साथ एक नेटिव बाइनरी का सेक्शन-मैप अवलोकन
सेक्शन-मैप अवलोकन
सेक्शन आकार के अनुसार आनुपातिक बार, लिस्टिंग / हेक्स व्यू पर जाने के लिए क्लिक करें