Skip to content

NabiKAZ/arvancloud-bypass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArvanCloud Bypass

یک کتابخانه سبک Node.js برای دور زدن چالش JavaScript آروان‌کلاد (ArvanCloud CDN) بدون نیاز به مرورگر.

ArvanCloud Bypass Demo


✨ ویژگی‌ها

  • بدون مرورگر — اجرا در Node.js خالص با ماژول vm
  • سبک و سریع — بدون dependency خارجی
  • ساده برای استفاده — فقط دو تابع: isArvanChallengePage و solveArvanChallenge
  • مدیریت خودکار کوکی — کوکی‌های bypass به‌صورت خودکار در Map ذخیره می‌شوند
  • قابل ادغام — به‌راحتی در هر HTTP client دلخواه استفاده کنید

📦 نصب

git clone https://github.com/NabiKAZ/arvancloud-bypass.git
cd arvancloud-bypass

نیازی به npm install نیست — این پروژه هیچ dependency خارجی ندارد.

پیش‌نیاز: Node.js نسخه ۱۸ به بالا


🚀 استفاده سریع

import { isArvanChallengePage, solveArvanChallenge } from './arvancloud-bypass.mjs';

const url = 'https://esale.ikco.ir/';
const cookieMap = new Map();

// 1. دریافت صفحه
const res = await fetch(url);
const body = await res.text();

// 2. بررسی وجود چالش آروان‌کلاد
if (isArvanChallengePage(body)) {
  // 3. حل چالش و ذخیره کوکی‌ها
  solveArvanChallenge(body, cookieMap);

  // 4. درخواست مجدد با کوکی‌های bypass
  const headers = { Cookie: [...cookieMap.entries()].map(([k,v]) => `${k}=${v}`).join('; ') };
  const realRes = await fetch(url, { headers });
  const realBody = await realRes.text();
  console.log(realBody);
}

🎬 ویدیو نمونه

arvancloud_bypass.mp4

📁 ساختار پروژه

arvancloud-bypass/
├── arvancloud-bypass.mjs   ← ماژول اصلی (import این فایل را بکنید)
├── example.mjs             ← مثال کامل با HTTPS
├── example-simple.mjs      ← مثال ساده با fetch
├── package.json
├── LICENSE
└── README.md

📖 مستندات API

isArvanChallengePage(body)

بررسی می‌کند که آیا بدنه پاسخ HTTP یک صفحه چالش آروان‌کلاد است یا نه.

پارامتر نوع توضیح
body string متن خام پاسخ HTTP

بازگشتی: boolean


solveArvanChallenge(htmlBody, cookieMap)

چالش JavaScript آروان‌کلاد را حل می‌کند و دو کوکی محاسبه‌شده را در cookieMap ذخیره می‌کند.

پارامتر نوع توضیح
htmlBody string HTML صفحه چالش
cookieMap Map Map کوکی‌ها که در-جا به‌روز می‌شود

بازگشتی: { arcsjs: string, arcsjsc: string }


▶️ اجرای مثال

# با آدرس پیش‌فرض (esale.ikco.ir)
node example.mjs

# با آدرس دلخواه
node example.mjs https://example.ir/

خروجی نمونه:

Target : https://esale.ikco.ir/
Retries: up to 5

[Attempt 1/5] GET https://esale.ikco.ir/
  Status      : 200
  Body length : 4823 chars
  ⚡ ArvanCloud challenge detected — solving …
[ArvanBypass] __arcsjs  = a3f9c12d4e…
[ArvanBypass] __arcsjsc = arcookie-171…
  Cookies now : __arcsjs, __arcsjsc
  Retrying with bypass cookies …

[Attempt 2/5] GET https://esale.ikco.ir/
  Status      : 200
  Body length : 52341 chars

✅  Successfully reached the real page!
   Status  : 200
   Cookies : __arcsjs, __arcsjsc

⚙️ نحوه کار

۱. استخراج اسکریپت چالش از HTML صفحه
۲. ساخت sandbox با vm.createContext — فقط با globals ضروری
۳. اصلاح اسکریپت تا callback های DOMContentLoaded و setTimeout بلافاصله اجرا شوند
۴. اجرا در VM — ایمن و بدون دسترسی به سیستم
۵. استخراج کوکی‌های __arcsjs و __arcsjsc از طریق setter ساختگی document.cookie


📋 نیازمندی‌ها

  • Node.js >= 18.0.0
  • بدون dependency خارجی

⭐ حمایت از پروژه

اگر این پروژه برایتان مفید بوده، ساده‌ترین کاری که می‌توانید انجام دهید اینست که از بالای همین صفحه گیتهاب با زدن روی دکمه ستاره (⭐️) به پروژه ارزش بدهید — این کار رایگان است و انگیزه بزرگی برای ادامه توسعه است 🙏

GitHub Stars

اگر مایل به حمایت مالی هستید:

💎 Ton Wallet: nabikaz.ton


👤 سازنده

@NabiKAZ


📄 لایسنس

این پروژه تحت لایسنس MIT منتشر شده است.


ساخته شده با ❤️

About

Node.js library to bypass ArvanCloud CDN JavaScript challenges without a browser

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors