
बग बाउंटी पर मुफ्त XP, अच्छी तरह से बनाए रखे गए टूल्स को लपेटकर स्वचालित परीक्षण करने के लिए भेद्यता स्कैनिंग। बाइनरी विश्लेषण के लिए AI एजेंटों के साथ, जिसमें गतिशील विश्लेषण करने के लिए बाहरी Android या एमुलेटर से कनेक्ट करना शामिल है।
एक ओपन-सोर्स भेद्यता स्कैनर जो प्रसिद्ध ओपन-सोर्स सुरक्षा उपकरणों को एक एकल वेब UI के पीछे लपेटता है।

| अनुभाग | विवरण |
|---|---|
| क्यों | XPFarm के पीछे प्रेरणा और दर्शन |
| लपेटे गए उपकरण | XPFarm द्वारा संचालित 10 ओपन-सोर्स उपकरण |
| आर्किटेक्चर मानचित्र | पूर्ण सिस्टम आर्किटेक्चर, स्कैन पाइपलाइन, डेटा प्रवाह और AI उपप्रणाली |
| ओवरलॉर्ड - AI बाइनरी विश्लेषण | बाइनरी/मैलवेयर विश्लेषण के लिए अंतर्निहित AI एजेंट |
| सेटअप | बिल्ड और डिप्लॉयमेंट निर्देश (Docker / स्रोत) |
| यादृच्छिक स्क्रीनशॉट | स्कैन और लॉग के UI स्क्रीनशॉट |
| TODO | नियोजित सुविधाएँ और रोडमैप |

flowchart TB
subgraph ENTRY["Entrypoint - main.go"]
M1["Parse Flags<br/>-debug mode"]
M2["InitDB<br/>SQLite + WAL + GORM"]
M3["InitModules<br/>Register 10 tool wrappers"]
M4["Health Check<br/>Auto-install missing tools"]
M5["RunUpdates<br/>-up flag on all PD tools"]
M6["CheckAndIndexTemplates<br/>Nuclei template versioning"]
M7["StartServer<br/>Gin on :8888"]
M1 --> M2 --> M3 --> M4 --> M5 --> M6 --> M7
end
subgraph UI_LAYER["Web UI - internal/ui/server.go"]
direction TB
GIN["Gin HTTP Server<br/>Embedded templates + static"]
subgraph Pages["HTML Pages"]
P1["Dashboard"]
P2["Assets"]
P3["Asset Details"]
P4["Target Details"]
P5["Modules"]
P6["Settings"]
P7["Overlord Chat"]
P8["Overlord Binary"]
P9["Search"]
P10["Advanced Scan"]
P11["Scan Settings"]
end
subgraph REST["REST API"]
direction LR
A1["POST /api/scan"]
A2["POST /api/search"]
A3["GET/POST /api/overlord/*"]
A4["POST /assets/create|delete"]
A5["POST /settings/*"]
A6["GET /api/active-scans"]
A7["POST /api/search/save|delete"]
A8["GET /api/overlord/events<br/>SSE Proxy"]
end
GIN --> Pages
GIN --> REST
end
subgraph SCAN_ENGINE["Scan Engine - internal/core/"]
direction TB
SM["ScanManager<br/>Singleton, mutex-guarded<br/>Active scan tracking"]
subgraph PIPELINE["8-Stage Scanning Pipeline - manager.go"]
direction TB
S0["Target Input<br/>ParseTarget + NormalizeToHostname"]
S1["Stage 1: Subfinder<br/>Subdomain Discovery"]
S2["Stage 2: Filter & Save<br/>ResolveAndCheck per subdomain<br/>Cloudflare / Localhost / Alive"]
S3["Stage 3: Naabu<br/>Port Scanning<br/>5-worker pool via channel"]
S4["Stage 4: Nmap<br/>Service Enumeration<br/>Version + Script detection"]
S5["Stage 5: Httpx<br/>HTTP Probing<br/>Rich metadata extraction"]
S6["Stage 6: Parallel Web Processing"]
S7["Stage 7: CVEMap<br/>CVE lookup by product/tech"]
S8["Stage 8: Nuclei<br/>Vulnerability Scanning"]
S0 --> S1 --> S2 --> S3 --> S4 --> S5 --> S6 --> S7 --> S8
end
subgraph STAGE6_DETAIL["Stage 6 - Parallel Web Asset Processing"]
direction LR
GW["Gowitness<br/>Screenshots"]
KAT["Katana<br/>JS Crawling, depth=5"]
UF["URLFinder<br/>URL Discovery"]
WAP["Wappalyzer<br/>Tech Detection<br/>Header + Body analysis"]
end
subgraph NUCLEI_PLAN["Stage 8 - Nuclei Scan Plan"]
direction TB
NP1["BuildNucleiPlan<br/>serviceTagMap lookup"]
NP2["Network Scans<br/>Per-port, service tags"]
NP3["Web Auto Scan<br/>-as wappalyzer mode"]
NP4["Fallback Scan<br/>Unmapped services"]
NP5["Enabled Mode<br/>Custom template workflow"]
NP1 --> NP2
NP1 --> NP3
NP1 --> NP4
NP1 --> NP5
end
subgraph RESOLVE["Target Resolution - target.go"]
direction LR
R1["ParseTarget<br/>IP / CIDR / Domain / URL"]
R2["ResolveAndCheck<br/>DNS + Cloudflare + Localhost"]
R3["DNS Cache<br/>sync.Map, 5min TTL"]
R1 --> R2 --> R3
end
subgraph SEARCH["Search Engine - search.go"]
SRCH["GlobalSearch<br/>Regex filter engine<br/>SQL joins across 5 tables<br/>AND/OR/Negate chaining"]
end
subgraph TEMPLATE_IDX["Template Indexer - template_indexer.go"]
TI["IndexNucleiTemplates<br/>Walk filesystem, batch upsert<br/>Version-tracked re-index"]
end
SM --> PIPELINE
S6 --> STAGE6_DETAIL
S8 --> NUCLEI_PLAN
end
subgraph MODULES["Module System - internal/modules/"]
direction TB
IFACE["Module Interface<br/>Name / Description<br/>CheckInstalled / Install / Run"]
subgraph REGISTRY["Registry - 10 Registered Modules"]
direction LR
T1["Subfinder<br/>Subdomain enum"]
T2["Naabu<br/>Port scan"]
T3["Nmap<br/>Service detection"]
T4["Httpx<br/>HTTP probe"]
T5["Gowitness<br/>Screenshots"]
T6["Katana<br/>Web crawling"]
T7["URLFinder<br/>URL discovery"]
T8["Wappalyzer<br/>Tech fingerprint"]
T9["Nuclei<br/>Vuln scanning"]
T10["CVEMap<br/>CVE lookup"]
end
IFACE --> REGISTRY
end
subgraph DATABASE["Database - internal/database/"]
direction TB
DB["SQLite + WAL Mode<br/>GORM ORM<br/>Single writer connection<br/>30s busy timeout"]
subgraph MODELS["Data Models"]
direction LR
DM1["Asset<br/>name, advanced_mode"]
DM2["Target<br/>value, type, is_alive<br/>is_cloudflare, is_localhost"]
DM3["Port<br/>port, protocol<br/>service, product, version"]
DM4["WebAsset<br/>url, title, tech_stack<br/>screenshot, paths"]
DM5["Vulnerability<br/>name, severity<br/>template_id, matcher"]
DM6["CVE<br/>cve_id, severity<br/>cvss, epss, is_kev"]
DM7["ScanResult<br/>tool_name, output"]
DM8["ScanProfile<br/>Feature toggles<br/>Port/Web/Vuln scope"]
DM9["NucleiTemplate<br/>template_id, file_path"]
DM10["SavedSearch<br/>name, query_data"]
DM11["Setting<br/>key-value config"]
end
DM1 -->|has many| DM2
DM2 -->|has many| DM3
DM2 -->|has many| DM4
DM2 -->|has many| DM5
DM2 -->|has many| DM6
DM2 -->|has many| DM7
DM1 -->|has one| DM8
DB --> MODELS
end
subgraph OVERLORD["Overlord - AI Agent Subsystem"]
direction TB
OV_PROXY["Overlord Proxy<br/>internal/overlord/overlord.go"]
subgraph OV_API["OpenCode Serve API"]
direction LR
OA1["GET /session<br/>List sessions"]
OA2["POST /session<br/>Create session"]
OA3["POST /session/:id/prompt_async<br/>Send message"]
OA4["POST /session/:id/abort<br/>Stop analysis"]
OA5["GET /event<br/>SSE stream"]
end
subgraph OV_FILES["File Management"]
direction LR
OF1["Binary Upload<br/>overlord/binaries/"]
OF2["Analysis Output<br/>overlord/output/"]
OF3["Auth JSON<br/>API key storage"]
end
subgraph PROVIDERS["21 AI Providers"]
direction LR
PR1["Anthropic<br/>OpenAI<br/>Groq"]
PR2["DeepSeek<br/>OpenRouter<br/>xAI"]
PR3["Ollama Local<br/>Cerebras<br/>Together"]
PR4["OpenCode Zen/Go<br/>+ 12 more"]
end
OV_PROXY --> OV_API
OV_PROXY --> OV_FILES
OV_PROXY --> PROVIDERS
end
subgraph DOCKER["Docker Deployment - docker-compose.yml"]
direction LR
DC1["xpfarm container<br/>Go app on :8888"]
DC2["overlord container<br/>OpenCode serve :3000<br/>radare2 + analysis tools"]
DC3["mobsf container<br/>Mobile scan :8000<br/>optional profile"]
DC1 <-->|xpfarm-network| DC2
DC1 <-->|xpfarm-network| DC3
end
subgraph NOTIFICATIONS["Notifications - internal/notifications/"]
direction LR
N1["Discord Bot<br/>Embed notifications<br/>Scan start/stop alerts"]
N2["Telegram Bot<br/>Markdown messages<br/>Scan start/stop alerts"]
end
subgraph UTILS["Utilities - pkg/utils/"]
direction LR
U1["Gradient Logger<br/>Color-coded terminal output"]
U2["Cloudflare IP Detector<br/>IPv4 + IPv6 CIDR matching"]
U3["Binary Resolver<br/>PATH + GOPATH fallback"]
end
%% Cross-component connections
M7 --> GIN
A1 --> SM
A2 --> SRCH
A3 --> OV_PROXY
SM -->|uses| IFACE
SM -->|reads/writes| DB
SM -->|callbacks| N1
SM -->|callbacks| N2
PIPELINE -->|ResolveAndCheck| RESOLVE
PIPELINE -->|recordResult| DB
S5 -->|analyzes response| WAP
A8 -->|proxies| OA5
Assetnote जैसे उपकरण बहुत अच्छे हैं – अच्छी तरह से बनाए रखे जाते हैं, अद्यतित हैं और भेद्यता पहचान के बारे में पारदर्शी हैं। लेकिन वे ओपन-सोर्स नहीं हैं। पहिये को फिर से आविष्कार करने की भी कोई आवश्यकता नहीं है, क्योंकि पहले से ही बहुत सारे ठोस ओपन-सोर्स उपकरण मौजूद हैं। XPFarm बस उन्हें एक साथ लपेटता है ताकि आपके पास एक भेद्यता स्कैनर हो जो ओपन-सोर्स और कम कॉर्पोरेट हो।
ध्यान एक ऐसा भेद्यता स्कैनर बनाने पर था जहाँ आप यह भी देख सकें कि पृष्ठभूमि में क्या विफल होता है या हटाया जाता है, बजाय उस रहस्य पर आश्चर्य करने के।

ओवरलॉर्ड एक अंतर्निहित AI एजेंट है जो OpenCode द्वारा संचालित है और बाइनरी, आर्काइव और अन्य फ़ाइलों का विश्लेषण कर सकता है। एक बाइनरी अपलोड करें और उससे चैट करें – एजेंट radare2, strings, फ़ाइल ट्रायेज और अधिक जैसे उपकरणों का उपयोग करके आपके लक्ष्य की जाँच करता है।


# Using the helper scripts (recommended)
./xpfarm.sh build # Build all containers
./xpfarm.sh up # Start everything
# Windows
.\xpfarm.ps1 build
.\xpfarm.ps1 up
# Standard Docker
docker compose up --build
# Build from source (no Overlord)
go build -o xpfarm
./xpfarm
./xpfarm -debug





![]() Asjidkalam |
![]() jamoski3112 शोध |