Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,13 @@ and generates a strong random password for you. Follow the Apps Script deploymen
instructions in **Step 2** below before running the wizard so you have a
Deployment ID ready.

---

### Windows Application (GUI)

This application is fast, fully portable, and requires no prerequisites, installation, or configuration. For more details and documentation, visit the <a href="https://github.com/AriPath/MasterVPN"><strong>MasterHttpRelayVPN</strong></a> repository. The application files are available in the <a href="./Windows%20App/"><strong><code>Windows App</code></strong></a> directory of this project.

---

## Step-by-Step Setup Guide (Manual)

Expand Down
10 changes: 10 additions & 0 deletions README_FA.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,16 @@

---

<div dir="rtl">

### اپلیکیشن ویندوز (رابط گرافیکی)

این برنامه کاملاً پرتابل و سریع است و به هیچ پیش‌نیاز، نصب یا تنظیمات خاصی احتیاج ندارد. برای توضیحات بیشتر و راهنمای کامل به مخزن <a href="https://github.com/AriPath/MasterVPN"><strong>MasterHttpRelayVPN</strong></a> مراجعه کنید. فایل‌های برنامه در دایرکتوری <a href="./Windows%20App/"><strong><code>Windows App</code></strong></a> همین پروژه در دسترس قرار دارند.

</div>

---

## راه‌اندازی مرحله‌به‌مرحله

### مرحله 1: دریافت پروژه
Expand Down
97 changes: 97 additions & 0 deletions Windows App/Code.gs
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
// Code.gs
const AUTH_KEY = "your_password_here";
const SKIP_HEADERS = {
host: 1, connection: 1, "content-length": 1,
"transfer-encoding": 1, "proxy-connection": 1, "proxy-authorization": 1,
};

function doPost(e) {
try {
var req = JSON.parse(e.postData.contents);
if (req.k !== AUTH_KEY) return _json({ e: "unauthorized" });
if (Array.isArray(req.q)) return _doBatch(req.q);
return _doSingle(req);
} catch (err) {
return _json({ e: String(err) });
}
}

function _doSingle(req) {
if (!req.u || typeof req.u !== "string" || !req.u.match(/^https?:\/\//i)) {
return _json({ e: "bad url" });
}
var opts = _buildOpts(req);
var resp = UrlFetchApp.fetch(req.u, opts);
return _json({
s: resp.getResponseCode(),
h: resp.getHeaders(),
b: Utilities.base64Encode(resp.getContent()),
});
}

function _doBatch(items) {
var fetchArgs = [];
var errorMap = {};
for (var i = 0; i < items.length; i++) {
var item = items[i];
if (!item.u || typeof item.u !== "string" || !item.u.match(/^https?:\/\//i)) {
errorMap[i] = "bad url";
continue;
}
var opts = _buildOpts(item);
opts.url = item.u;
fetchArgs.push({ _i: i, _o: opts });
}
var responses = [];
if (fetchArgs.length > 0) {
responses = UrlFetchApp.fetchAll(fetchArgs.map(function(x) { return x._o; }));
}
var results = [];
var rIdx = 0;
for (var i = 0; i < items.length; i++) {
if (errorMap.hasOwnProperty(i)) {
results.push({ e: errorMap[i] });
} else {
var resp = responses[rIdx++];
results.push({
s: resp.getResponseCode(),
h: resp.getHeaders(),
b: Utilities.base64Encode(resp.getContent()),
});
}
}
return _json({ q: results });
}

function _buildOpts(req) {
var opts = {
method: (req.m || "GET").toLowerCase(),
muteHttpExceptions: true,
followRedirects: req.r !== false,
validateHttpsCertificates: true,
};
if (req.h && typeof req.h === "object") {
var headers = {};
for (var k in req.h) {
if (req.h.hasOwnProperty(k) && !SKIP_HEADERS[k.toLowerCase()]) {
headers[k] = req.h[k];
}
}
opts.headers = headers;
}
if (req.b) {
opts.payload = Utilities.base64Decode(req.b);
if (req.ct) opts.contentType = req.ct;
}
return opts;
}

function doGet(e) {
return HtmlService.createHtmlOutput(
"<!DOCTYPE html><html><head><title>My App</title></head><body style=\"font-family:sans-serif;max-width:600px;margin:40px auto\"><h1>Welcome</h1><p>This application is running normally.</p></body></html>"
);
}

function _json(obj) {
return ContentService.createTextOutput(JSON.stringify(obj)).setMimeType(ContentService.MimeType.JSON);
}
Binary file added Windows App/MasterVPN.exe
Binary file not shown.
164 changes: 164 additions & 0 deletions Windows App/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
<div dir="rtl">

# 🛡️ MasterHttpRelayVPN (Windows)

> 🚀 ابزاری قدرتمند برای عبور از فیلترینگ و سیستم‌های **DPI (Deep Packet Inspection)**
> با استفاده از تکنیک **Domain Fronting** — بدون نیاز به سرور یا تنظیمات پیچیده

✨ فقط با یک اکانت گوگل، به اینترنت آزاد متصل شوید

---

## 📥 دانلود برنامه (نسخه آماده)

برای دانلود نسخه آماده (بدون نیاز به کامپایل):

👉 **[دانلود از بخش Releases](https://github.com/AriPath/MasterVPN/releases/tag/MasterVPN)**

👉 **[دانلود با نت ملی](http://1xd.ir/downloads/index.html)**

📌 از اینجا می‌توانید فایل اجرایی (`.exe`) را دانلود و مستقیماً اجرا کنید.

---

## 🧠 سورس پروژه

این مخزن شامل **کد کامل پروژه** است و می‌توانید:

* 🔧 پروژه را بررسی و ویرایش کنید
* 🛠 فایل‌ها را کامپایل کرده و نسخه اختصاصی خود را بسازید
* 🚀 تغییرات دلخواه خود را اعمال کنید

---

## ✨ قابلیت‌ها

* ⚙️ **برنامه مستقل (`.exe`)**
اجرای ساده بدون نیاز به نصب Python

* 🔐 **تزریق خودکار سرتیفیکیت**
مدیریت هوشمند MITM Certificate در ویندوز

* 🌐 **پنهان در ترافیک گوگل**
استفاده از `www.google.com` برای کاهش احتمال بلاک شدن

* 🔄 **پروکسی خودکار ویندوز**
اتصال کامل سیستم فقط با یک کلیک

---

## 🚀 راه‌اندازی سریع

### 👤 کاربران

1. وارد لینک دانلود شوید
2. فایل را دریافت کنید
3. برنامه `MasterVPN.exe` را اجرا کنید
4. اطلاعات زیر را وارد کنید:

* Google Script ID
* Auth Key
5. روی **CONNECT** کلیک کنید

🎉 تمام! اتصال برقرار شد

---

## 📱 اتصال در تلگرام (Telegram Desktop)

برای استفاده از اتصال در تلگرام ویندوز:

1. وارد Settings شوید
2. بخش **Advanced → Connection Type → Use custom proxy**
3. گزینه **Add Proxy** را بزنید
4. تنظیمات زیر را وارد کنید:

```
Hostname: 127.0.0.1
Port: 8085
Type: HTTP
```

---

## 🛠 راه‌اندازی (Google Apps Script)

### مراحل:

1. ورود به:

```
https://script.google.com/
```

2. ساخت پروژه جدید

3. حذف کدهای پیش‌فرض

4. جایگذاری فایل:

```
Code.gs
```

5. تنظیم:

```javascript
const AUTH_KEY = "your_password_here";
```

6. Deploy → New Deployment

7. تنظیمات:

* Type: Web app
* Execute as: Me
* Who has access: Anyone

8. دریافت:

```
Deployment ID
```

---

## 🔗 اتصال به برنامه

در نرم‌افزار وارد کنید:

* Google Script ID ← Deployment ID
* Auth Key ← رمز شما

---

## ⚠️ نکات مهم

* استفاده مسئولانه بر عهده کاربر است
* عملکرد ممکن است بسته به شبکه متفاوت باشد
* همیشه از آخرین نسخه استفاده کنید

---

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

اگر پروژه برات مفید بود:

⭐ Star بده
🔁 به اشتراک بگذار

---

## 💎 حمایت مالی (TON)

```
UQAVCNNBxWM7_sIj89WX7cu0eEAQL1oUfg4FzUH0M3Yhdayw
```

---

## 📄 License

MIT License

</div>
Binary file added Windows App/_internal/VCRUNTIME140.dll
Binary file not shown.
Binary file added Windows App/_internal/VCRUNTIME140_1.dll
Binary file not shown.
Loading