diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e43b0f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/README.md b/README.md
index 851b8d3..d380b07 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,39 @@
-# HttpCanary
+# Welcome to HttpCanary
-Coming...
+## Introduction
+
+HttpCanary is a powerful network analysis tool for the Android platform. It supports multiple protocols such as **TCP**, **UDP**, **HTTP**, **HTTP2**, **HTTPS** and **WebSocket**.
+
+
+The application can be download from Google Play.
+
+
+| Free Version | Paid Version|
+| :----------: | :----------: |
+|[](https://play.google.com/store/apps/details?id=com.guoshi.httpcanary) | [](https://play.google.com/store/apps/details?id=com.guoshi.httpcanary.premium) |
+
+
+## Features
+- [x] No root requirement, will not affect network usage.
+- [x] Supports protocols like HTTP1.0, HTTP1.1, HTTP2, HTTPS and WebSocket.
+- [x] Supports modification and injection of capture data, you can intercept the packets and modify them.
+- [x] Supports repeat and compose requests.
+- [x] Supports filtering and searching for packet capture records, as well as setting the specified app and Host/IP.
+- [x] Contains Raw, Hex, Text, Header, JSON and many other viewers.
+- [x] Automatic decode data like gzip, deflate, chunked.
+- [x] Supports for previewing URL, JSON, form, image, audio, cookie, set-cookie, and many other data types.
+- [x] Supports for saving request and response data to a file or adding to favorite.
+- [x] Supports WebSocket real-time preview.
+- [x] Supports sharing of request and response data, and open shared file with HttpCanary.
+- [x] Supports blocking request and response.
+
+
+## Getting Started
+
+- [Wiki](https://github.com/MegatronKing/HttpCanary/wiki)
+- [Tutorials](https://httpcanary.com/tutorials)
+- [NetBare](https://github.com/MegatronKing/NetBare)
+
+## Screenshot
+
+
diff --git a/assets/get-it-on-google-play.png b/assets/get-it-on-google-play.png
new file mode 100644
index 0000000..d63382d
Binary files /dev/null and b/assets/get-it-on-google-play.png differ
diff --git a/assets/main_screenshot.png b/assets/main_screenshot.png
new file mode 100644
index 0000000..9bc3083
Binary files /dev/null and b/assets/main_screenshot.png differ
diff --git a/config/basic/version.json b/config/basic/version.json
new file mode 100644
index 0000000..f081a01
--- /dev/null
+++ b/config/basic/version.json
@@ -0,0 +1,8 @@
+{
+"min": "3.1.5",
+"latest": "3.3.4",
+"url": "https://httpcanary.com/app/httpcanary_basic_v3.3.4.apk",
+"en_notes": " • New features: search, sort and multi selection.\n • New features: batch save, zip save and batch add black/white list.\n • Refactor filter and record save.\n • Redesign icons in list and title texts.\n • Fixed the long loading issue.\n • Fixed the issue where the sub menu icon is invisible.\n • Fixed certificate installation issue.\n • Minor bugfixes and other improvements.\n",
+"zh_notes": " • 新增全局搜索、排序、多选等功能。\n • 新增批量保存、压缩保存、批量添加黑白名单等功能。\n • 重构和优化过滤、保存功能。\n • 重新设计列表非应用类Icon、标题栏内容等样式。\n • 修复启动加载时间过长的bug。\n • 修复标题栏子菜单图标不显示的bug。\n • 修复安装证书横竖屏切换等场景出现无限循环安装证书的bug。\n • 其它细节问题修复和优化。\n",
+"md5": "49c4ddbb2bafd7150a49cdbe35443744"
+}
diff --git a/config/premium/version.json b/config/premium/version.json
new file mode 100644
index 0000000..dd87351
--- /dev/null
+++ b/config/premium/version.json
@@ -0,0 +1,8 @@
+{
+"min": "3.3.0",
+"latest": "3.3.5",
+"url": "https://httpcanary.com/app/httpcanary_premium_v3.3.5.apk",
+"en_notes": " • Important: The 3.2.x version was expired, please upgrade to v3.3+.\n • New features: search, sort and multi selection.\n • New features: batch save, zip save and batch add black/white list.\n • Refactor filter and record save.\n • Redesign icons in list and title texts.\n • Fixed the long loading issue.\n • Fixed the issue where the sub menu icon is invisible.\n • Fixed certificate installation issue.\n • Minor bugfixes and other improvements.\n",
+"zh_notes": " • 重要:3.2.x版本已失效,请升级至3.3.x以上版本。\n • 新增全局搜索、排序、多选等功能。\n • 新增批量保存、压缩保存、批量添加黑白名单等功能。\n • 重构和优化过滤、保存功能。\n • 重新设计列表非应用类Icon、标题栏内容等样式。\n • 修复启动加载时间过长的bug。\n • 修复标题栏子菜单图标不显示的bug。\n • 修复安装证书横竖屏切换等场景出现无限循环安装证书的bug。\n • 其它细节问题修复和优化。\n",
+"md5": "49c4ddbb2bafd7150a49cdbe35443744"
+}
diff --git a/plugins/HostBlock/hosts.txt b/plugins/HostBlock/hosts.txt
new file mode 100644
index 0000000..7bbd7dd
--- /dev/null
+++ b/plugins/HostBlock/hosts.txt
@@ -0,0 +1,10 @@
+# There is a bug in the history version of this plugin. Please upgrade to v3.1.5 or later.
+
+# Configure domain hosts, support ? and * wildcards.
+xw.qq.com
+*.baidu.com
+
+# Configure domain IPs, support ? and * wildcards.
+112.25.105.102
+112.25.105.24?
+223.111.*.*
\ No newline at end of file
diff --git a/plugins/HttpOverview/http-overview.xls b/plugins/HttpOverview/http-overview.xls
new file mode 100644
index 0000000..c8b831c
Binary files /dev/null and b/plugins/HttpOverview/http-overview.xls differ
diff --git a/plugins/MimeBlock/req-mimes.txt b/plugins/MimeBlock/req-mimes.txt
new file mode 100644
index 0000000..a0b3864
--- /dev/null
+++ b/plugins/MimeBlock/req-mimes.txt
@@ -0,0 +1,5 @@
+# Block all image requests.
+image/*
+
+# Block JSON requests.
+application/json
\ No newline at end of file
diff --git a/plugins/MimeBlock/res-mimes.txt b/plugins/MimeBlock/res-mimes.txt
new file mode 100644
index 0000000..47b63bc
--- /dev/null
+++ b/plugins/MimeBlock/res-mimes.txt
@@ -0,0 +1,5 @@
+# Block all image responses.
+image/*
+
+# Block JSON responses.
+application/json
\ No newline at end of file
diff --git a/plugins/PacketsUpload/.gitignore b/plugins/PacketsUpload/.gitignore
new file mode 100644
index 0000000..07e6e47
--- /dev/null
+++ b/plugins/PacketsUpload/.gitignore
@@ -0,0 +1 @@
+/node_modules
diff --git a/plugins/PacketsUpload/app.js b/plugins/PacketsUpload/app.js
new file mode 100644
index 0000000..fa59e30
--- /dev/null
+++ b/plugins/PacketsUpload/app.js
@@ -0,0 +1,30 @@
+const http = require('http');
+const fs = require('fs');
+const dateFormat = require('dateformat');
+
+const compressing = require('compressing');
+
+const dir = "HttpCanary";
+
+if (!fs.existsSync(dir)) {
+ fs.mkdirSync(dir);
+}
+
+http.createServer(function (req, res) {
+ console.log("header: " + req.headers['hello']);
+ var zip = dir + "/" + dateFormat(new Date(), "yyyymmdd_hMMss") + ".zip";
+ var stream = req.pipe(fs.createWriteStream(zip));
+ stream.on("finish", function(response) {
+ compressing.zip.uncompress(zip, zip.slice(0, -4))
+ .then(() => {
+ fs.unlinkSync(zip);
+ res.writeHead(200, {'Content-Type': 'application/json'});
+ res.end("{\"message\":\"Upload success!\"}");
+ })
+ .catch(err => {
+ fs.unlinkSync(zip);
+ res.writeHead(500, {'Content-Type': 'application/json'});
+ res.end("{\"message\":\"Server internal error!\"}");
+ });
+ });
+}).listen(9090);
\ No newline at end of file
diff --git a/plugins/PacketsUpload/package.json b/plugins/PacketsUpload/package.json
new file mode 100644
index 0000000..3d716e4
--- /dev/null
+++ b/plugins/PacketsUpload/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "packets-upload",
+ "version": "1.0.0",
+ "private": true,
+ "scripts": {
+ "start": "node ./bin/www"
+ },
+ "dependencies": {
+ "compressing": "^1.4.0",
+ "dateformat": "^3.0.3"
+ }
+}
diff --git a/tutorials/.gitignore b/tutorials/.gitignore
new file mode 100644
index 0000000..1b97a40
--- /dev/null
+++ b/tutorials/.gitignore
@@ -0,0 +1,3 @@
+_book
+.DS_Store
+/node_modules
diff --git a/tutorials/LANGS.md b/tutorials/LANGS.md
new file mode 100644
index 0000000..97bb516
--- /dev/null
+++ b/tutorials/LANGS.md
@@ -0,0 +1,4 @@
+# Languages
+
+* [简体中文](zh-hans/)
+* [English](en/)
diff --git a/tutorials/book.json b/tutorials/book.json
new file mode 100644
index 0000000..dc26dc5
--- /dev/null
+++ b/tutorials/book.json
@@ -0,0 +1,91 @@
+{
+ "title": "HttpCanary使用教程",
+ "author": "Megatron King",
+ "language": "zh-hans",
+ "plugins": [
+ "-lunr",
+ "-search",
+ "-highlight",
+ "-livereload",
+ "search-plus@^0.0.11",
+ "simple-page-toc@^0.1.1",
+ "github@^2.0.0",
+ "edit-link@^2.0.2",
+ "anchors@^0.7.1",
+ "include-codeblock@^3.0.2",
+ "emphasize@^1.1.0",
+ "splitter@^0.0.8",
+ "tbfed-pagefooter@^0.0.1",
+ "expandable-chapters-small@^0.1.7",
+ "sectionx@^3.1.0",
+ "anchor-navigation-ex@0.1.8",
+ "favicon@^0.0.2",
+ "todo@^0.1.3",
+ "alerts@^0.2.0",
+ "versions-select@^0.1.1",
+ "-sharing",
+ "sharing-plus@^0.0.2"
+ ],
+ "pluginsConfig": {
+ "theme-default": {
+ "showLevel": false
+ },
+ "github": {
+ "url": "https://github.com/MegatronKing/HttpCanary"
+ },
+ "include-codeblock": {
+ "template": "ace",
+ "unindent": true,
+ "edit": true
+ },
+ "sharing": {
+ "douban": false,
+ "facebook": false,
+ "google": false,
+ "hatenaBookmark": false,
+ "instapaper": false,
+ "line": false,
+ "linkedin": false,
+ "messenger": false,
+ "pocket": false,
+ "qq": false,
+ "qzone": false,
+ "stumbleupon": false,
+ "twitter": false,
+ "viber": false,
+ "vk": false,
+ "weibo": false,
+ "whatsapp": false,
+ "all": [
+ "facebook", "google", "twitter",
+ "weibo", "instapaper", "linkedin",
+ "pocket", "stumbleupon", "qq", "qzone"
+ ]
+ },
+ "tbfed-pagefooter": {
+ "copyright": "Copyright © GuoShi 2020",
+ "modify_format": "YYYY-MM-DD HH:mm:ss"
+ },
+ "simple-page-toc": {
+ "maxDepth": 3,
+ "skipFirstH1": true
+ },
+ "edit-link": {
+ "base": "https://github.com/MegatronKing/HttpCanary/blob/master/tutorials",
+ "label": "Edit"
+ },
+ "anchor-navigation-ex": {
+ "isRewritePageTitle": false,
+ "tocLevel1Icon": "fa fa-hand-o-right",
+ "tocLevel2Icon": "fa fa-hand-o-right",
+ "tocLevel3Icon": "fa fa-hand-o-right"
+ },
+ "sectionx": {
+ "tag": "b"
+ },
+ "favicon": {
+ "shortcut": "favicon.ico",
+ "bookmark": "favicon.ico"
+ }
+ }
+}
diff --git a/tutorials/en/README.md b/tutorials/en/README.md
new file mode 100644
index 0000000..93a44fc
--- /dev/null
+++ b/tutorials/en/README.md
@@ -0,0 +1,78 @@
+## Introduction
+
+[Languages](https://httpcanary.com/tutorials)
+
+HttpCanary is a powerful network analysis tool on the Android platform. It supports TCP/UDP/HTTP/HTTPS/WebSocket and other protocols. It can be regarded as Fiddler or Charles on the Android platform.
+
+Users of HttpCanary need to have some basic knowledge of TCP/IP, and it is only suitable for the following usage scenarios:
+- Android/front-end/back-end software engineers debug the Rest API or locate bugs in network programming.
+- Software test engineers edit network data to simulate different business scenarios and perform white-box or black-box tests.
+- Network security engineers test and verify the risks of network communication between app and server.
+
+If you are not a professional in the above fields or lack the corresponding knowledge and risk awareness, we recommend that you should uninstall this application immediately!
+
+
+### 1. Limit & Support
+- Android 5.0+ / real machine + emulator / Wifi + cellular network / no requirement of root.
+- Please refrain from using Parallel Space on Android 10+ (Check Installation page for other ways).
+
+### 2. Features
+
+#### 2.1 Multi-protocol Support
+- Support HTTP1.0/HTTP1.1/HTTP2/HTTPS protocols.
+- Support WebSocket protocol.
+- Support Basic TCP/UDP protocol.
+
+#### 2.2 Data analysis Support
+- Support the common encoding formats, such as gzip, brotli, chunked, etc.
+- Support searching and filtering packet content, support customized filter rules.
+- Support previewing data content, such as JSON, pictures, audio, video, text, cookies, etc.
+- Support many kinds viewers of data analysis, such as Raw Viewer, HEX Viewer, Text Viewer, etc.
+- Support network analysis, such as previewing the detail of HTTP packets, counting the size of request / response data, aggregating the statistics of time, etc.
+- Support adding to favorites, adding comment, saving, sharing and copying data packet.
+
+#### 2.3 Debug Support
+- Support adding breakpoint on specified request, modifying the data and submitting.
+- Support injector function, creating custom rules to modify packets.
+- Support operating on network requests, such as resending / modifying and resending / batch resending .
+- Support blacklist or whitelist function, freely specifying the target to capture packets.
+- Support packet shielding, such as blocking specified packets sent from the client to the server.
+
+#### 2.4 Plugin Support
+- Rich built-in common plugins, such as Video Downloader, WeChat Location Modifier, etc.
+- Support creating, importing and exporting injector plugins(partially implemented).
+
+### 3. Premium Version
+
+HttpCanary has two different versions: free version and premium version. The free version is limited as follows:
+- 14-day premium version full-featured experience period (except for a few features).
+- Will have advertisements in some pages, such as the homepage and content pages.
+- Unable to use high-speed mode.
+- The breakpoint and injector functions are not available.
+- The resending, advanced resending, modifying and resending functions are not available.
+- The copy cURL function are not available.
+- Unable to use the function of quickly shielding the specified packet.
+- Some built-in plugins are not available.
+- Unable to participate in the first-hand internal testing experience event of the new version.
+- Unable to communicate with developers in a one to one way.
+
+**⚠️ The breakpoint and injection of the premium version are not available in China Mainland.**
+**⚠️ The breakpoint and injection of the premium version are not available in China Mainland.**
+**⚠️ The breakpoint and injection of the premium version are not available in China Mainland.**
+
+#### How to get the premium version?
+
+In order to prevent the abuse of some features, the purchase channel of the premium version has been closed in China Mainland. For getting the premium version, please go to [Google Play](https://play.google.com/store/apps/details?id=com.guoshi.httpcanary.premium) and purchase. Sorry for the inconvenience!
+
+#### Plan of free
+
+If you are a loyal fan of HttpCanary and cannot use Google Play to purchase the premium version, you can participate in the **plan of free**. You can get the activation code of the premium version or the redeem code for the premium version of Google Play from the developer upon reaching the standards.
+
+Standards of Award:
+- Take part in writing, translating or error correcting of HttpCanary's tutorial. The submitted tutorial content must be professional and positive. Participation method: submitting pull request on [Github](https://github.com/MegatronKing/HttpCanary/tree/master/tutorials). If the pull request passes the review, the developer will give you the gift of the **plan of free**.
+
+### 4. Notice
+
+HttpCanary is a developer tool. It can only be used only with highly ethical intention such as network security analysis, API interface debugging, and network communication principle learning. It is strictly forbidden to use in illegal activity or black/gray industry chains, such as network attacks, data theft, application cracking, and making cheating plugins. The legal risks caused by improper use of HttpCanary are borne by the user, HttpCanary and the developer will not bear any responsibility.
+
+Please read the "User License Agreement" carefully before using HttpCanary and strictly abide by the "User License Agreement" in accordance with laws and regulations of your country during the use.
diff --git a/tutorials/en/SUMMARY.md b/tutorials/en/SUMMARY.md
new file mode 100644
index 0000000..a7714c9
--- /dev/null
+++ b/tutorials/en/SUMMARY.md
@@ -0,0 +1,25 @@
+# HttpCanary Tutorial
+
+* [Introduction](README.md)
+* [Download](download.md)
+* [Installation](install.md)
+* [Basic Usage](basic/README.md)
+ * [HTTP Protocol](basic/http.md)
+ * [WebSocket Protocol](basic/websocket.md)
+ * [TCP/UDP Protocol](basic/tcp-udp.md)
+* [Advanced Usage](advanced/README.md)
+ * [SSL Host Mapping](advanced/ssl-host-mapping.md)
+* [Plugins](plugins/README.md)
+ * [Host Blocking](plugins/host-block.md)
+ * [MimeType Blocking](plugins/mime-type-block.md)
+ * [Image Downloader](plugins/image-download.md)
+ * [Audio Downloader](plugins/audio-download.md)
+ * [Video Downloader](plugins/video-download.md)
+ * [HTTP Overview](plugins/http-overview.md)
+ * [Network Location Modifier](plugins/location.md)
+ * [Packet Upload](plugins/packets-upload.md)
+* [Feedback](feedback.md)
+* [About](about.md)
+* [Coming Soon](coming.md)
+
+
diff --git a/tutorials/en/about.md b/tutorials/en/about.md
new file mode 100644
index 0000000..6711db2
--- /dev/null
+++ b/tutorials/en/about.md
@@ -0,0 +1,18 @@
+### About
+
+HttpCanary is a personal product which was developed outside of my daily work. I finished all the works by myself, including requirements analysis, UI design, front-end and back-end development, and testing. However, due to lack of energy and time, there are some problems such as updating slowly, missing features, and insufficient user experience. Sorry for any inconvenience brought to you.
+
+My goal is to make HttpCanary the most powerful network analysis tool on Android!
+
+Welcome to follow me on Github:
+[MegatronKing](https://github.com/MegatronKing)
+
+### Special thanks
+
+Thanks to following people who provided help for HttpCanary:
+- 寒梧
+- Wil Osberger
+- david082321
+- BuShe
+- 妖精ξ也會哭
+- Hasky
diff --git a/tutorials/en/advanced/README.md b/tutorials/en/advanced/README.md
new file mode 100644
index 0000000..f951a58
--- /dev/null
+++ b/tutorials/en/advanced/README.md
@@ -0,0 +1,3 @@
+### Advanced Usage
+
+In addition to the basic functions of network packet capture, HttpCanary also provides rich functions to facilitate developers' debugging, such as injections changing, breakpoints and so on. In this tutorial of advanced usage, several typical scenarios will be demonstrated to help developers become familiar with the advanced features of HttpCanary and the handling of some common exceptions.
diff --git a/tutorials/en/advanced/ssl-host-mapping.md b/tutorials/en/advanced/ssl-host-mapping.md
new file mode 100644
index 0000000..9aec673
--- /dev/null
+++ b/tutorials/en/advanced/ssl-host-mapping.md
@@ -0,0 +1,34 @@
+### SSL Host Mapping
+
+When using SSL/TLS to encrypt the request, the client needs to add the information of host (Server Name Indication, SNI for short) in the handshake packet to request the certificate of the server. This is because one server could have multiple domain names, so the server needs to return the corresponding domain SSL certificate according to the information of host in client request. HttpCanary will parse the SNI to create a MITM certificate for handshake.
+
+
+
+This works well in normal cases. However, in many cases, the server will only have one domain name. In order to improve the speed of response, the client may directly use ip instead of domain name when connecting to server. At this time, the client will not add SNI in the handshake packet so the HttpCanary can't obtain the information of host to create a man-in-middle certificate. As a result, the HttpCanary cannot parse SSL/TLS encrypted data packets. The following image shows the data we will see:
+
+
+
+Take the packet above as an example. The port of server is 443, indicating that this is most likely an HTTPS request. The first packet is a Client Hello handshake packet sent by the client to the server, and the second packet is a Server Hello handshake packet sent by the server to the client. The information in the red box of the Server Hello packet in the image is the SSL certificate information. The domain name (CN) of the certificate is github.com, but the first Client Hello handshake packet does not have SNI information, that is, there is no github.com information. Therefore, the packets that HttpCanary capture were all encrypted with SSL/TLS.
+
+In this case, you need to complete SNI information manually.
+
+#### Method 1: Automatic Mapping
+
+In "more options" menu, tap "Host Mapping" to automatically bound the host of the certificate to the current ip.
+
+
+
+#### Method 2: Manual Mapping
+
+Except for automatic mapping, you can use manual mapping to map the host manually. You can get into "Settings-> SSL Certificate Management-> Host Mapping", tap the "+" button in the upper right corner, and add the host and ip.
+
+
+
+In addition, HttpCanary also supports managing mapped host, batch importing and exporting.
+
+
+
+After configuring the host mapping, you can obtain unencrypted data of HTTPS packets for analysis!
+
+
+
diff --git a/tutorials/en/assets/cetificate_export.png b/tutorials/en/assets/cetificate_export.png
new file mode 100755
index 0000000..3ff3f1a
Binary files /dev/null and b/tutorials/en/assets/cetificate_export.png differ
diff --git a/tutorials/en/assets/cetificate_firefox1.png b/tutorials/en/assets/cetificate_firefox1.png
new file mode 100755
index 0000000..cf1147f
Binary files /dev/null and b/tutorials/en/assets/cetificate_firefox1.png differ
diff --git a/tutorials/en/assets/cetificate_firefox2.png b/tutorials/en/assets/cetificate_firefox2.png
new file mode 100755
index 0000000..4215659
Binary files /dev/null and b/tutorials/en/assets/cetificate_firefox2.png differ
diff --git a/tutorials/en/assets/cetificate_move.png b/tutorials/en/assets/cetificate_move.png
new file mode 100755
index 0000000..f37b0b5
Binary files /dev/null and b/tutorials/en/assets/cetificate_move.png differ
diff --git a/tutorials/en/assets/cetificate_trust.png b/tutorials/en/assets/cetificate_trust.png
new file mode 100755
index 0000000..ad8c795
Binary files /dev/null and b/tutorials/en/assets/cetificate_trust.png differ
diff --git a/tutorials/en/assets/http_audio.png b/tutorials/en/assets/http_audio.png
new file mode 100755
index 0000000..8182201
Binary files /dev/null and b/tutorials/en/assets/http_audio.png differ
diff --git a/tutorials/en/assets/http_cookie.png b/tutorials/en/assets/http_cookie.png
new file mode 100755
index 0000000..c10e12e
Binary files /dev/null and b/tutorials/en/assets/http_cookie.png differ
diff --git a/tutorials/en/assets/http_headers.png b/tutorials/en/assets/http_headers.png
new file mode 100755
index 0000000..5939252
Binary files /dev/null and b/tutorials/en/assets/http_headers.png differ
diff --git a/tutorials/en/assets/http_hex.png b/tutorials/en/assets/http_hex.png
new file mode 100755
index 0000000..f7a5eb4
Binary files /dev/null and b/tutorials/en/assets/http_hex.png differ
diff --git a/tutorials/en/assets/http_image.png b/tutorials/en/assets/http_image.png
new file mode 100755
index 0000000..592823c
Binary files /dev/null and b/tutorials/en/assets/http_image.png differ
diff --git a/tutorials/en/assets/http_json.png b/tutorials/en/assets/http_json.png
new file mode 100755
index 0000000..b78145e
Binary files /dev/null and b/tutorials/en/assets/http_json.png differ
diff --git a/tutorials/en/assets/http_overview.png b/tutorials/en/assets/http_overview.png
new file mode 100755
index 0000000..816d11e
Binary files /dev/null and b/tutorials/en/assets/http_overview.png differ
diff --git a/tutorials/en/assets/http_preview.png b/tutorials/en/assets/http_preview.png
new file mode 100755
index 0000000..077996d
Binary files /dev/null and b/tutorials/en/assets/http_preview.png differ
diff --git a/tutorials/en/assets/http_raw.png b/tutorials/en/assets/http_raw.png
new file mode 100755
index 0000000..663a1b3
Binary files /dev/null and b/tutorials/en/assets/http_raw.png differ
diff --git a/tutorials/en/assets/http_save.png b/tutorials/en/assets/http_save.png
new file mode 100755
index 0000000..3bc3d01
Binary files /dev/null and b/tutorials/en/assets/http_save.png differ
diff --git a/tutorials/en/assets/http_set-cookie.png b/tutorials/en/assets/http_set-cookie.png
new file mode 100755
index 0000000..7022868
Binary files /dev/null and b/tutorials/en/assets/http_set-cookie.png differ
diff --git a/tutorials/en/assets/http_share.png b/tutorials/en/assets/http_share.png
new file mode 100755
index 0000000..4d4c8af
Binary files /dev/null and b/tutorials/en/assets/http_share.png differ
diff --git a/tutorials/en/assets/http_text.png b/tutorials/en/assets/http_text.png
new file mode 100755
index 0000000..1897ee2
Binary files /dev/null and b/tutorials/en/assets/http_text.png differ
diff --git a/tutorials/en/assets/http_url.png b/tutorials/en/assets/http_url.png
new file mode 100755
index 0000000..83ad610
Binary files /dev/null and b/tutorials/en/assets/http_url.png differ
diff --git a/tutorials/en/assets/http_video.png b/tutorials/en/assets/http_video.png
new file mode 100755
index 0000000..37ae7d7
Binary files /dev/null and b/tutorials/en/assets/http_video.png differ
diff --git a/tutorials/en/assets/install_paralle_space.png b/tutorials/en/assets/install_paralle_space.png
new file mode 100755
index 0000000..831ddcf
Binary files /dev/null and b/tutorials/en/assets/install_paralle_space.png differ
diff --git a/tutorials/en/assets/install_system_cetificate.png b/tutorials/en/assets/install_system_cetificate.png
new file mode 100755
index 0000000..1d08cc4
Binary files /dev/null and b/tutorials/en/assets/install_system_cetificate.png differ
diff --git a/tutorials/en/assets/install_user_cetificate.png b/tutorials/en/assets/install_user_cetificate.png
new file mode 100755
index 0000000..f76a34d
Binary files /dev/null and b/tutorials/en/assets/install_user_cetificate.png differ
diff --git a/tutorials/en/assets/install_vpn.png b/tutorials/en/assets/install_vpn.png
new file mode 100755
index 0000000..f70efcc
Binary files /dev/null and b/tutorials/en/assets/install_vpn.png differ
diff --git a/tutorials/en/assets/main_page.png b/tutorials/en/assets/main_page.png
new file mode 100755
index 0000000..14bcdd1
Binary files /dev/null and b/tutorials/en/assets/main_page.png differ
diff --git a/tutorials/en/assets/paralle_space_capture.png b/tutorials/en/assets/paralle_space_capture.png
new file mode 100755
index 0000000..f76ee49
Binary files /dev/null and b/tutorials/en/assets/paralle_space_capture.png differ
diff --git a/tutorials/en/assets/plugin.png b/tutorials/en/assets/plugin.png
new file mode 100755
index 0000000..9bc3be2
Binary files /dev/null and b/tutorials/en/assets/plugin.png differ
diff --git a/tutorials/en/assets/plugin_repo.png b/tutorials/en/assets/plugin_repo.png
new file mode 100755
index 0000000..4188e1f
Binary files /dev/null and b/tutorials/en/assets/plugin_repo.png differ
diff --git a/tutorials/en/assets/ssl_host_mapping1.png b/tutorials/en/assets/ssl_host_mapping1.png
new file mode 100755
index 0000000..7a52557
Binary files /dev/null and b/tutorials/en/assets/ssl_host_mapping1.png differ
diff --git a/tutorials/en/assets/ssl_host_mapping2.png b/tutorials/en/assets/ssl_host_mapping2.png
new file mode 100755
index 0000000..5d65402
Binary files /dev/null and b/tutorials/en/assets/ssl_host_mapping2.png differ
diff --git a/tutorials/en/assets/ssl_host_mapping3.png b/tutorials/en/assets/ssl_host_mapping3.png
new file mode 100755
index 0000000..24b1782
Binary files /dev/null and b/tutorials/en/assets/ssl_host_mapping3.png differ
diff --git a/tutorials/en/assets/ssl_host_mapping4.png b/tutorials/en/assets/ssl_host_mapping4.png
new file mode 100755
index 0000000..b40cd8e
Binary files /dev/null and b/tutorials/en/assets/ssl_host_mapping4.png differ
diff --git a/tutorials/en/assets/ssl_sni.png b/tutorials/en/assets/ssl_sni.png
new file mode 100755
index 0000000..fe751e8
Binary files /dev/null and b/tutorials/en/assets/ssl_sni.png differ
diff --git a/tutorials/en/assets/tcp_udp_hex.png b/tutorials/en/assets/tcp_udp_hex.png
new file mode 100755
index 0000000..430613a
Binary files /dev/null and b/tutorials/en/assets/tcp_udp_hex.png differ
diff --git a/tutorials/en/assets/tcp_udp_more.png b/tutorials/en/assets/tcp_udp_more.png
new file mode 100755
index 0000000..7a5c9f4
Binary files /dev/null and b/tutorials/en/assets/tcp_udp_more.png differ
diff --git a/tutorials/en/assets/tcp_udp_text.png b/tutorials/en/assets/tcp_udp_text.png
new file mode 100755
index 0000000..88f6a80
Binary files /dev/null and b/tutorials/en/assets/tcp_udp_text.png differ
diff --git a/tutorials/en/assets/websockets_diagram.png b/tutorials/en/assets/websockets_diagram.png
new file mode 100755
index 0000000..03d245c
Binary files /dev/null and b/tutorials/en/assets/websockets_diagram.png differ
diff --git a/tutorials/en/assets/websockets_overview.png b/tutorials/en/assets/websockets_overview.png
new file mode 100755
index 0000000..35618be
Binary files /dev/null and b/tutorials/en/assets/websockets_overview.png differ
diff --git a/tutorials/en/basic/README.md b/tutorials/en/basic/README.md
new file mode 100644
index 0000000..7e8ac0c
--- /dev/null
+++ b/tutorials/en/basic/README.md
@@ -0,0 +1,13 @@
+### Basic Usage
+
+HttpCanary supports capturing the packages which use TCP or UDP in transport layer, but can only parse the packages whose application layer protocol is HTTP or WebSocket. The packages with other application layer protocols will be displayed as raw data and marked as TCP or UDP.
+
+
+
+The picture above shows the records in different protocol: 1st - HTTP, 2nd - TCP, 3rd - UDP, 4th - Websocket.
+
+Let's see the data format of the following protocols.
+
+- [HTTP Protocol](/basic/http.md)
+- [WebSocket Protocol](/basic/websocket.md)
+- [Protocols based on TCP/UDP](/basic/tcp-udp.md)
\ No newline at end of file
diff --git a/tutorials/en/basic/http.md b/tutorials/en/basic/http.md
new file mode 100644
index 0000000..4721222
--- /dev/null
+++ b/tutorials/en/basic/http.md
@@ -0,0 +1,139 @@
+### HTTP
+
+#### 1. The message format of HTTP
+
+HTTP is the abbreviated form of Hypertext Transfer Protocol, which is based on the TCP protocol in Transport Layer.
+
+Firstly, you need to learn the message format of HTTP, here is an example for a simple HTTP request and response.
+
+Request Message:
+```
+GET /index.html HTTP/1.1
+Host: www.httpcanary.com
+```
+The 1st line is request line, the 2nd line is request header(a HTTP request could have more than one request header). If the method of request is POST, there will also be a request body.
+
+Response message:
+```
+HTTP/1.1 200 OK
+Server: Apache
+Connection: Keep-Alive
+Content-Type: text/html; charset=UTF-8
+Content-Length: 12
+
+Hello World!
+```
+The 1st line is response line, the 2nd to 4th line are response headers, the last line is response body.
+
+In practical usage, the format of HTTP is far more complex than this example. You can get more details from this [link](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview).
+
+
+#### 2. HTTP Viewers
+
+HttpCanary supports parsing HTTP packets in different versions, including HTTP/1.0, HTTP/1.1, and HTTP/2, and provides a variety of operation views.
+
+In packet content page, you can swipe left or swipe right to switch between the HTTP request and response. Then you can click the tags below to switch in different viewers.
+
+##### 2.1 Overview
+
+Here is a content overview of a request and response which protocol is HTTP/1.1:
+
+
+
+The overview page displays the basic properties of a HTTP request, including URL, server information, content, time, the size of request and so on.
+
+##### 2.2 Raw Viewer
+
+The Raw Viewer displays the raw data of a HTTP request(data in HTTP/2 will be transformatted to HTTP/1.x automatically). You can do a long press on the content to copy it.
+
+
+
+##### 2.3 Headers Viewer
+
+The Headers Viewer displays the request headers and response headers. You could tap on the header items to do more operations.
+
+
+
+##### 2.4 HEX Viewer
+
+HttpCanary provides the HEX Viewer which displays the request boday and response body in hexadecimal. This view could help the developers to analysis the data format of the packets.
+
+
+
+##### 2.5 Text Viewer
+
+The Text Viewer displays the request body and response body in text format. The content of packets will be decoded to text automatically. It supports the format such as gzip, chunked, Brotli and so on.
+
+
+
+Remark: The non-text content will be displayed in messy code.
+
+##### 2.6 Preview Viewer
+
+HttpCanary supports formatting and previewing the data of some data formats, such as json, pictures, audio, and video.
+
+For example, the json content will be formatted automatically:
+
+
+
+##### 2.7 JSON Viewer
+
+Although the preview already supports formatting json content, HttpCanary still provides a professional colorful JSON Viewer, which can be accessed by tapping on the preview content. The JSON View supports the closing and expansion of JSON nodes, and you can click on the nodes for more operations.
+
+
+
+
+##### 2.8 Image Viewer
+
+HttpCanary supports previewing the image content. You can tap on the image in content page to enter the image preview mode, use gesture to zoom in and out, and tap the upper right corner to save.
+
+
+
+The Image View not only supports the animated images(.gif, .webp and so on format), but also supports the static images(.jpg and .png and so on format).
+
+##### 2.9 Audio Viewer
+
+HttpCanary supports playing audio content, including standard audio formats such as mp3, wav, aac, ogg and so on.
+
+
+
+##### 2.10 Video Viewer
+
+HttpCanary supports playing video content too, including standard video formats such as mp4, wav and so on.
+
+
+
+##### 2.11 URL Viewer
+
+Some URLs may contain a quantity of parameters, you can tap the URL and get into the URL Viewer. In this Viewer, you can preview the splitted parameters and do operations on them.
+
+
+
+##### 2.12 Cookie Viewer
+
+Cookies are commonly used data in web pages. HttpCanary designed a corresponding Cookie Viewer which displays Set-Cookie content and Cookie content.
+
+
+
+
+
+
+#### 3. Save and share the HTTP packets
+
+##### 3.1 Save
+
+In the packet content page, click the save button in the upper right corner to save the captured packet data. The target directory is HttpCanary/download directory in sdcard. There are two files saved, one is a original packet data in .hcy format, and the other is the content of the request body or response body.
+
+
+
+
+In addition, the .hcy format can be opened again with HttpCanary in the file manager.
+
+##### 3.2 Share
+
+For HTTP sharing, you can choose to share the request or response separately, or choose to share together. Some applications are not supporting sharing together, such as WeChat and QQ.
+
+
+
+
+
diff --git a/tutorials/en/basic/tcp-udp.md b/tutorials/en/basic/tcp-udp.md
new file mode 100644
index 0000000..6015632
--- /dev/null
+++ b/tutorials/en/basic/tcp-udp.md
@@ -0,0 +1,25 @@
+### TCP/UDP Protocol
+
+#### 1. The Format of TCP/UDP Protocol
+
+The TCP and UDP are two transport layer protocols. The transport layer of most network protocols is based on these two protocols, such as HTTP, XMPP, MQTT, RTSP, and so on. HttpCanary supports parsing TCP/UDP protocol. If the application layer uses HTTP, it will be automatically parsed into format of HTTP. If the application layer uses unknown protocol, it will be displayed in the original data format of TCP/UDP.
+
+#### 2. TCP/UDP Protocol Viewer
+
+Since the original network packets of TCP/UDP are almost in binary format, HttpCanary will be garbled when displayed in text form. The left arrow indicates that this data packet is a packet sent from the client to the server and the right arrow indicates that this data packet is a packet sent from the server to the client.
+
+
+
+It is recommended to use the HEX Viewer when analyzing the TCP/UDP packets. By analyzing the format of binary data, you can speculate the application layer protocol of the packets. Since HttpCanary only supports parts of application layer protocol, the identification and analysis of other application layer protocols need to be completed by yourself.
+
+
+
+In the "more" menu, there are some operations such as saving, sharing, copying, and view switching of the protocol content.
+
+
+
+
+
+
+
+
diff --git a/tutorials/en/basic/websocket.md b/tutorials/en/basic/websocket.md
new file mode 100644
index 0000000..7c06eb0
--- /dev/null
+++ b/tutorials/en/basic/websocket.md
@@ -0,0 +1,23 @@
+### WebSocket Protocol
+
+#### 1. The Format of WebSocket Protocol
+
+WebSocket is a protocol for full-duplex communication over a single TCP connection. To establish a WebSocket connection, the client must first send an HTTP request to the server. This request is different from the common HTTP request, it contains some additional headers. The additional header "Upgrade: WebSocket" indicates that this is an HTTP request which applies for protocol upgrade. The server parses these additional headers and generates a response message to the client, and the WebSocket connection between the client and server is established. Then the two parties can freely pass information through this connection channel. The connection will exist until The client or server actively closes the connection.
+
+
+Here is the interaction process of the Websocket protocol:
+
+
+
+#### 2. WebSocket Protocol Viewer
+
+HttpCanary supports parsing the WebSocket protocol, and displays the data interaction between the client and the server in the form of dialogue.
+
+
+
+
+
+
+
+
+
diff --git a/tutorials/en/coming.md b/tutorials/en/coming.md
new file mode 100644
index 0000000..48ca028
--- /dev/null
+++ b/tutorials/en/coming.md
@@ -0,0 +1,2 @@
+### To be continued
+
diff --git a/tutorials/en/download.md b/tutorials/en/download.md
new file mode 100644
index 0000000..a1829dc
--- /dev/null
+++ b/tutorials/en/download.md
@@ -0,0 +1,24 @@
+### Latest Release
+
+#### v3.3.3
+- New features: search, sort and multi selection.
+- New features: batch save, zip save and batch add black/white list.
+- Refactor filter and record save.
+- Redesign icons in list and title texts.
+- Fixed the long loading issue.
+- Fixed the issue where the sub menu icon is invisible.
+- Fixed certificate installation issue.
+- Other improvements and bug fix.
+
+
+### Download
+
+#### Free version
+- [Google Play](https://play.google.com/store/apps/details?id=com.guoshi.httpcanary)
+
+#### Premium version
+- [Google Play](https://play.google.com/store/apps/details?id=com.guoshi.httpcanary.premium)
+
+### Limitations
+- For policy reasons,we will not publish or provide downloads or sell HttpCanary in any application store or platform in China Mainland.
+- We will restrict and disable some functions for the versions of HttpCanary which obtained through cross-zone methods.
diff --git a/tutorials/en/feedback.md b/tutorials/en/feedback.md
new file mode 100644
index 0000000..db2cb51
--- /dev/null
+++ b/tutorials/en/feedback.md
@@ -0,0 +1,12 @@
+### Feedback and Communication
+
+You can give us the feedback on software features, positive suggestions, problems and bugs, etc., and grow with HttpCanary!
+
+It is recommended to describe the details clearly in the feedback. To provide the samples (url/curl/screenshots) and some infomation of your device(such as system version, model, network) will also be helpful.
+
+#### 1. Create issues on Github(Recommended)
+Create your feedback, suggestions or bugs through Github issues, we will occasionally review and respond.
+
+#### 2. Send email to support@httpcanary.com
+If you encounter issues, it's recommended to save the capture file from HttpCanary in advance and send it as an attachment. That can effectively improve our communication efficiency.
+
diff --git a/tutorials/en/install.md b/tutorials/en/install.md
new file mode 100644
index 0000000..7f01bb0
--- /dev/null
+++ b/tutorials/en/install.md
@@ -0,0 +1,130 @@
+### Installation
+
+#### 1. VPN Configuration(Necessary)
+
+HttpCanary uses VPN as a MITM(Man in the Middle) to capture network packets, so you must configure the VPN first.
+
+
+
+
+
+#### 2. Install root certificate(Necessary)
+
+**Due to Android system's limitations, you must draw your phone screen lock or enter the phone password when installing the certificate. If you have not set them, you need to set a screen lock or password at first.**
+
+HttpCanary uses MITM(Man in the Middle) technology to capture the network packets or to decrypt the network packets which were encrypted with TLS/SSL in requests of HTTPS, WSS and so on protocols. So you need to install HttpCanary's root certificate first. During installation, click OK by default. Do not modify the configuration.
+
+
+
+
+
+#### 3. Upgrade the certificate to system certificate(7.0+ Strongly Recommended)
+
+**This step requires a Root device. It is strongly recommended to do this configuration for systems with Android 7.0 and above systems. Skip this step for 5.0-6.0 systems.**
+
+From Android 7.0(Android N), Google changed the network security policy. The CA certificate installed by user will not be trusted by TLS/SSL connection by default. This means HttpCanary may not capture the packets which encrypted with TLS/SSL and can't connect to network during packet capturing. Therefore, you need to upgrade the certificate installed in last step to the system CA certificate.
+
+##### 3.1 Method one:One-click Upgrade in HttpCanary
+
+
+
+This method may fail. If it fails, please refer to other methods below.
+
+##### 3.2 Method two:Manually import(Root required)
+
+First, export the certificate file which was installed in step 2. You can find it under /data/misc/user/0/cacerts-added/ directory (you need to distinguish by file's time attribute if there are more than one file). Or you can export it to SD card in HttpCanary's root certificate settings.
+
+
+
+Copy the .0 file(do not edit it's name) to the system CA directory: /system/etc/security/cacerts/.
+
+There are several ways :
+
+- Use adb commands to copy,
+
+This method requires the installation of adb tools, so this method is suitable for Android developers. If the adb tools are not installed, please refer to other methods.
+
+```shell
+# 87bc3517.0 is an example, you should replace with the real file name
+adb root
+adb shell
+mount -o rw,remount /system
+cp -f /sdcard/HttpCanary/87bc3517.0 /system/etc/security/cacerts
+```
+
+- Use of applications which can operate on system files to perform copy and edit operations, such as the MT manager 2.
+
+Use MT manager 2 to import the certificate file, and copy the .0 format certificate file to /system/etc/security/cacerts directory directly (need to mount the system partition with read and write status).
+
+
+
+##### 3.3 Verify after successfully upgrading
+
+After upgrading successfully,you can find the corresponding HttpCanary's certificate under Settings -> Encryption and credentials
+-> Trusted credentials -> System.
+
+
+
+##### 3.4 Attention
+
+- This operation needs to be performed on devices with root previlege
+- It is not necessary to configure this for devices below Android 7.0
+- Upgrading/restarting the Android system may delete or reset system certificate file. Please check and re-import
+- After upgrading the system certificate, do not uninstall the user certificate which was installed in step 2
+
+
+
+#### 4. Add certificate to Mozilla Firefox
+
+Mozilla Firefox is suitable to capture the packets of web pages, but it uses a non-system CA certificate for authentication,So the HttpCanary's system certificate doesn't work. You need to add the certificate to Firefox manually.
+
+
+
+Open HttpCanary's Firefox certificate installation page, click "Install" and choose Firefox. Select all options in the Firefox's certificate installation dialog which pops up automatically and click "Confirm" (**Please select all options**).
+
+
+
+
+
+#### 5. Install parallel space (highly recommended for Android versions 7.0 - 9.0 non-root devices)
+
+For non-root users whoes device system version is Android 7.0 and above, it's strongly recommended to install parallel space to assist packet capture. Devices with Android 5.0-6.0 and 10.0+ can ignore this step.
+
+**Attention:Parallel space does not support Android Q version**
+
+Root devices are required to upgrade the certificate to system certificate. Therefore, users who cannot root the device can use parallel space to assist packet capture, which can solve the problem that can't connect to network during packet capturing in some applications.
+
+##### 5.1 Installation
+
+After initializing HttpCanary, find the entrance for installing parallel space in the HttpCanary settings. If it is a 64-bit device, two parallel space installation options will be displayed. Please install them one by one. Mobile phones with Android 8.0 and above will restrict the installation source during the installation. Please choose allow the installation (you can turn off the permissions after completing the installation).
+
+
+
+
+**Attention: You must use the built-in version of parallel space from HttpCanary, and packet capture will be invalid in higher version of parallel space**
+
+
+##### 5.2 The usage of parallel space
+
+For some applications which can't connect to network during packet capturing, you can use parallel space to open it (open the target application, not HttpCanary).
+
+
+
+
+Use HttpCanary to capture packets from parallel space, then you can capture the packets of the target application.
+
+---
+
+#### Summary
+
+- For mobile phones with android version below Android 7.0,upgrading to system certificate is not necessary and parallel space installation is also not necessary. It is very friendly to capture packets.
+
+- For mobile phones which system version is 7.0 and higher, upgrade certificate if rooted, install parallel space if not rooted.
+
+**This is the end of installation tutorial! Start using HttpCanary happily!**
+
+
+
+
+
+
diff --git a/tutorials/en/plugins/README.md b/tutorials/en/plugins/README.md
new file mode 100644
index 0000000..6d3cde7
--- /dev/null
+++ b/tutorials/en/plugins/README.md
@@ -0,0 +1,21 @@
+### Plugin
+
+HttpCanary supports the plugin function which can be used to implement customized interception processing on the data of captured packets. For example, the injector function is implemented by a plugin. Although we haven't released the plugin interface yet, we provide some built-in plugins in HttpCanary.
+
+
+#### Plugin Management
+
+You can enter Plugin Management Page from the sidebar. The page will displays all configured injector plugins, blocking plugins and other customized plugins.
+
+
+
+#### Plugin Repository
+
+Currently, the plugin repository displays only a few experimental built-in plugins of HttpCanary.
+
+
+
+#### Plugin SDK
+
+The design of plugin SDK has not been fully finished now, but it has been planned into the 4.0 version, please be patient!
+
diff --git a/tutorials/en/plugins/audio-download.md b/tutorials/en/plugins/audio-download.md
new file mode 100644
index 0000000..de21b50
--- /dev/null
+++ b/tutorials/en/plugins/audio-download.md
@@ -0,0 +1,17 @@
+### Audio Downloader
+
+This plugin can automatically save the audios in captured packets. The target directory is /HttpCanary/plugins/AudioDownloader.
+
+**For free verion of HttpCanary, this plugin is available during trial period.**
+
+Here are the supported audio formats:
+- aac
+- mp3
+- m4a
+- ogg
+- wav
+- flac
+- ape
+- webm
+- opus
+- m3u8
diff --git a/tutorials/en/plugins/host-block.md b/tutorials/en/plugins/host-block.md
new file mode 100644
index 0000000..a01e5d5
--- /dev/null
+++ b/tutorials/en/plugins/host-block.md
@@ -0,0 +1,28 @@
+### Host Blocking
+
+**This plugin has some issue in old versions, please update to v3.1.5 and later**
+
+The Host blocking plugin can block the specific host and IP during network requests. You need to configure the target Host and IP in /HttpCanary/plugins/HostBlock/hosts.txt. The file will be automatically created when the plugin is installed. You could add or edit Host and IP in it directly. The plugin supports using * and ? wildcard character to match Host and IP.
+
+
+Here is the format of Host and IP in hosts.txt:
+```
+# block the specified QQ domain
+xw.qq.com
+
+# block all domains under baidu.com (using wildcard character *)
+*.baidu.com
+
+# block the specified IP address
+112.25.105.102
+
+# block the IP address between 112.25.105.240 and 112.25.105.249 (using wildcard character ?)
+112.25.105.24?
+
+# block the IP address which starts with 223.111 (using wildcard character *)
+223.111.*.*
+```
+
+Here is a demo hosts file:
+
+[Demo file](https://raw.githubusercontent.com/MegatronKing/HttpCanary/master/plugins/HostBlock/hosts.txt)
\ No newline at end of file
diff --git a/tutorials/en/plugins/http-overview.md b/tutorials/en/plugins/http-overview.md
new file mode 100644
index 0000000..10cd4ef
--- /dev/null
+++ b/tutorials/en/plugins/http-overview.md
@@ -0,0 +1,26 @@
+### HTTP Overview
+
+This plugin is used to gather statistics of HTTP packets and generate the report in Excel files. These files are saved under /HttpCanary/plugins/StatsOverview .
+
+**For free verion of HttpCanary, this plugin is available during trial period.**
+
+Here are the statistics in overview:
+- url
+- server ip
+- protocol version
+- request method
+- response code
+- timestamp of starting request
+- timestamp of starting response
+- timestamp of finishing response
+- data size of request
+- data size of response
+- time duration from starting request to starting response
+- time duration from starting request to finishing response
+
+**Remark**
+- The timestamp of starting response is the point that received the response code, the timestamp of finishing response is the point that received all response data.
+
+Here is an example of Excel file which contains the statistics.
+
+[Demo File](https://raw.githubusercontent.com/MegatronKing/HttpCanary/master/plugins/HttpOverview/http-overview.xls)
\ No newline at end of file
diff --git a/tutorials/en/plugins/image-download.md b/tutorials/en/plugins/image-download.md
new file mode 100644
index 0000000..c042d11
--- /dev/null
+++ b/tutorials/en/plugins/image-download.md
@@ -0,0 +1,12 @@
+### Image Downloader
+
+This plugin can automatically save the images in captured packets. The target directory is /HttpCanary/plugins/ImageDownloader.
+
+Here are the supported image formats:
+- png
+- jpeg
+- jpg
+- webp
+- gif
+- bmp
+- svg
diff --git a/tutorials/en/plugins/location.md b/tutorials/en/plugins/location.md
new file mode 100644
index 0000000..2673580
--- /dev/null
+++ b/tutorials/en/plugins/location.md
@@ -0,0 +1,9 @@
+### Network Location Modifier
+
+This plugin can be used to modify location of network request. Currently, only Tencent-based locating interfaces are supported, such as location function of WeChat.
+
+**This plugin is available in premium version**
+
+After enabling this plugin, you need to copy the modified position to the phone pasteboard, the format is: **longitude, latitude**.
+
+You can use[Baidu Coordinate Picking System](http://api.map.baidu.com/lbsapi/getpoint/index.html) to select a location, and then copy the latitude and longitude coordinates directly.
\ No newline at end of file
diff --git a/tutorials/en/plugins/mime-type-block.md b/tutorials/en/plugins/mime-type-block.md
new file mode 100644
index 0000000..a1a0af4
--- /dev/null
+++ b/tutorials/en/plugins/mime-type-block.md
@@ -0,0 +1,21 @@
+### Mime-Type Blocking
+
+The Mime-Type blocking plugin can block specified HTTP requests or responses. You need to configure in /HttpCanary/plugins/MimeTypeBlock/req-mimes.txt or res-mimes.txt. The former file is used to add rules for blocking request data, and the latter is used to add rules for blocking response data. These two file are automatically created when the plugin is installed. You could add or edit the specified Mime-Type directly in them. The **version v3.1.5** and later support using * and ? wildcard character.
+
+Taking req-mimes.txt as an example, the configured Mime-Type format is as follows:
+```
+# blocking image requests (using wildcard character *)
+image/*
+
+# blocking JSON requests
+application/json
+```
+
+Here are the examples of req-mimes.txt and res-mimes.txt:
+
+[Demo File](https://raw.githubusercontent.com/MegatronKing/HttpCanary/master/plugins/MimeTypeBlock/req-mimes.txt)
+
+[Demo File](https://raw.githubusercontent.com/MegatronKing/HttpCanary/master/plugins/MimeTypeBlock/res-mimes.txt)
+
+To get more about Mime-Type, you can refer to:
+[Official MimeType List](https://www.iana.org/assignments/media-types/media-types.xhtml)
\ No newline at end of file
diff --git a/tutorials/en/plugins/packets-upload.md b/tutorials/en/plugins/packets-upload.md
new file mode 100644
index 0000000..66608b3
--- /dev/null
+++ b/tutorials/en/plugins/packets-upload.md
@@ -0,0 +1,56 @@
+### Packet Upload
+
+This plugin can package and upload the packet files to the specified server. If the mobile phone and the computer are in the same local area network, you can use the computer as a local server, then the data packet files of the mobile phone can be synchronized to the computer automatically. You can configure upload to a remote server too. In addition, data packet upload is triggered every time the packet capture is stopped.
+
+
+**This plugin is available in premium version**
+
+The purpose of this tutorial is to explain how to configure a local server on your computer, then upload network packets captured by HttpCanary to your computer.
+
+#### Configure the file of HttpCanary plugin
+
+Configure the computer's ip address and port in /HttpCanary/plugins/PacketsUpload/config.json, for example, 192.168.1.4:9090. Also, we can configure a custom header (optional).
+
+```json
+{
+ "hello": "ok",
+ "server": "http://192.168.1.4:9090"
+}
+```
+
+#### Configure local server
+
+We use Nodejs to quickly build the server in this tutorial. You can use other frameworks instead. Nodejs code for server has been provided on github and can be run directly,
+[Click Here](https://github.com/MegatronKing/HttpCanary/tree/master/plugins/PacketsUpload)。
+
+##### 1. Install nodejs
+
+You need to install nodejs first. You can download it from[Official Website](https://nodejs.org) or you can use the package manager that comes with your computer.
+
+##### 2. Configure server code
+
+Download the above two files, app.js and package.json, and put them in the same directory:
+```
+ .
+ ├── app.js
+ └── package.json
+```
+
+Run npm command to install dependencies:
+```
+npm install
+```
+
+##### 3. Start the server
+
+Run the following command to start the server:
+```
+node app.js
+```
+
+Do some operation on your mobile phone. After finishing packet capture, you can see the synchronized packet file in the server folder! The data packet file format is hcy binary format. There is no corresponding software on the PC side to open it directly, but you can use HEX and other files for analysis.
+
+
+##### 4. Attentions
+
+**For your privacy, please do not configure server addresses from unknown sources**
\ No newline at end of file
diff --git a/tutorials/en/plugins/video-download.md b/tutorials/en/plugins/video-download.md
new file mode 100644
index 0000000..0866f4a
--- /dev/null
+++ b/tutorials/en/plugins/video-download.md
@@ -0,0 +1,15 @@
+### Video Downloader
+
+This plugin can automatically save the videos in captured packets. The target directory is /HttpCanary/plugins/VideoDownloader.
+
+**This plugin is available in premium version**
+
+Here are the supported video formats:
+- mkv
+- rmvb
+- avi
+- mp4
+- wmv
+- mov
+- flv
+- webm
diff --git a/tutorials/zh-hans/README.md b/tutorials/zh-hans/README.md
new file mode 100644
index 0000000..f80204b
--- /dev/null
+++ b/tutorials/zh-hans/README.md
@@ -0,0 +1,79 @@
+## 介绍
+
+[Languages](https://httpcanary.com/tutorials)
+
+HttpCanary是Android平台下功能最强大的网络分析工具,支持TCP/UDP/HTTP/HTTPS/WebSocket等多种协议,可以视为Android平台下的Fiddler和Charles。
+
+HttpCanary的使用者需要掌握一定的计算机网络基础知识,且仅适用于以下使用场景:
+- Android、前端和后端软件工程师对Rest API调试,定位网络编程中出现的bug。
+- 测试工程师编辑网络数据模拟不同业务场景,进行白盒或黑盒测试。
+- 网络安全工程师对App和服务器网络通信的风险进行测试和验证。
+
+如果您是非以上领域专业人员或者缺乏相应的知识基础以及风险认知,我们建议您立即卸载本应用!
+
+### 1. 限制&支持
+- Android 5.0+/真机+模拟器/Wifi+蜂窝网络/无root要求。
+- **因政策原因,HttpCanary不在中国大陆地区任何应用商店和平台进行发布、下载和销售!**
+
+### 2. 功能特性
+
+#### 2.1 多协议支持
+- 支持HTTP1.0/HTTP1.1/HTTP2/HTTPS协议。
+- 支持WebSocket协议。
+- 支持TCP/UDP协议。
+
+#### 2.2 数据分析支持
+- 支持常见编码格式解析,例如gzip、brotli、chunked等。
+- 数据包内容搜索和过滤,支持创建自定义过滤规则。
+- 数据内容预览,例如JSON、图片、音频、视频、文本、Cookie等。
+- 丰富的数据分析视图,例如Raw视图、HEX视图、TEXT视图等。
+- 网络详情分析,支持HTTP详情总览、请求/响应数据量、时间统计等。
+- 支持数据包收藏、备注、保存、分享、复制。
+
+#### 2.3 调试支持
+- 断点指定请求,支持修改数据再提交。
+- 注入器支持,创建自定义规则修改数据包。
+- 支持对网络请求重发、编辑重发、批量重发等操作。
+- 配置黑名单或者白名单,自由指定目标抓包。
+- 支持数据包屏蔽,比如屏蔽客户端发向服务器的指定数据包。
+
+#### 2.4 插件支持
+- 内置多种常用插件,比如视频自动下载、微信定位漂移等。
+- 注入器插件创建、导入和导出(部分功能实现中)。
+
+### 3. 高级版本
+
+HttpCanary分为免费版本和高级版本两种类型。其中,免费版本限制如下:
+- 14天的高级版本全部功能体验期(除极少部分功能外)。
+- 首页、内容页等部分页面会有广告。
+- 无法使用极速模式。
+- 无法使用断点和注入功能。
+- 无法使用重发、高级重发和编辑重发功能。
+- 无法使用复制cURL功能。
+- 无法使用指定数据包快速屏蔽功能。
+- 无法使用部分内置插件。
+- 无法参与内测第一手体验新版本活动。
+- 无法与开发者一对一亲密交流。
+
+**⚠️ 中国地区高级版本无法使用断点和注入功能**
+**⚠️ 中国地区高级版本无法使用断点和注入功能**
+**⚠️ 中国地区高级版本无法使用断点和注入功能**
+
+#### 如何获取高级版本?
+
+为防止部分功能滥用,国内已关闭高级版本的购买渠道,如需获取高级版本,请前往[Google Play](https://play.google.com/store/apps/details?id=com.guoshi.httpcanary.premium)购买,带来不便非常抱歉!
+
+#### 免费计划
+
+如果您是HttpCanary的忠实粉丝又无法使用Google Play购买高级版本,可以参与**免费计划**,到达条件即可获取由开发者赠与的高级版本激活码或者Google Play高级版本的兑换码(二选一)。
+
+获赠条件:
+
+- 参与HttpCanary的教程编写、翻译或错误纠正,所提交的教程内容必须专业且积极向上。参与方式:Github提交PR,教程目录[戳我](https://github.com/MegatronKing/HttpCanary/tree/master/tutorials) ,在PR审核通过后,开发者会亲手送上免费计划的福利啦。
+
+
+### 4. 使用须知
+
+HttpCanary是开发者工具,仅可以用来做网络安全分析、API接口调试和网络通信原理学习,严禁用于网络攻击、数据盗取、应用破解和制作外挂等违法或涉黑涉灰途径。若因为不正当使用HttpCanary带来了法律风险,由使用者自己承担,HttpCanary和开发者不承担任何责任。
+
+请各位在使用HttpCanary之前认真阅读《用户许可协议》并在使用过程中遵纪守法认真履行《用户许可协议》。
diff --git a/tutorials/zh-hans/SUMMARY.md b/tutorials/zh-hans/SUMMARY.md
new file mode 100644
index 0000000..f742914
--- /dev/null
+++ b/tutorials/zh-hans/SUMMARY.md
@@ -0,0 +1,25 @@
+# HttpCanary使用教程
+
+* [介绍](README.md)
+* [下载](download.md)
+* [安装](install.md)
+* [基本使用](basic/README.md)
+ * [HTTP协议](basic/http.md)
+ * [WebSocket协议](basic/websocket.md)
+ * [TCP/UDP协议](basic/tcp-udp.md)
+* [进阶使用](advanced/README.md)
+ * [SSL域名映射](advanced/ssl-host-mapping.md)
+* [插件](plugins/README.md)
+ * [Host屏蔽](plugins/host-block.md)
+ * [MimeType屏蔽](plugins/mime-type-block.md)
+ * [图片下载器](plugins/image-download.md)
+ * [音频下载器](plugins/audio-download.md)
+ * [视频下载器](plugins/video-download.md)
+ * [HTTP总览统计](plugins/http-overview.md)
+ * [网络定位漂移](plugins/location.md)
+ * [上传服务器](plugins/packets-upload.md)
+* [反馈与交流](feedback.md)
+* [关于](about.md)
+* [未完待续](coming.md)
+
+
diff --git a/tutorials/zh-hans/about.md b/tutorials/zh-hans/about.md
new file mode 100644
index 0000000..188a7e5
--- /dev/null
+++ b/tutorials/zh-hans/about.md
@@ -0,0 +1,18 @@
+### 关于
+
+HttpCanary是个人业余开发的作品,从需求分析、UI设计、前后端开发以及测试都是一个人独立完成。但由于精力和时间不足,所以存在更新较慢、功能缺失以及用户体验不足等问题,希望大家见谅!
+
+我的目标是将HttpCanary做成Android上最强大的网络分析工具!
+
+欢迎关注我的Github:
+[MegatronKing](https://github.com/MegatronKing)
+
+### 特别鸣谢
+
+感谢以下各位对HttpCanary提供了帮助:
+- 寒梧
+- Wil Osberger
+- david082321
+- BuShe
+- 妖精ξ也會哭
+- Hasky
diff --git a/tutorials/zh-hans/advanced/README.md b/tutorials/zh-hans/advanced/README.md
new file mode 100644
index 0000000..2c0a692
--- /dev/null
+++ b/tutorials/zh-hans/advanced/README.md
@@ -0,0 +1,4 @@
+### 进阶操作
+
+除了网络数据包捕获的基本功能外,HttpCanary还提供了丰富的功能来方便开发者的进行调试,比如注入修改、断点等等。在进阶教程里面,会演示几种典型的场景,帮助开发者熟悉HttpCanary的高级功能以及一些常见异常问题的处理。
+
diff --git a/tutorials/zh-hans/advanced/ssl-host-mapping.md b/tutorials/zh-hans/advanced/ssl-host-mapping.md
new file mode 100644
index 0000000..0b14adf
--- /dev/null
+++ b/tutorials/zh-hans/advanced/ssl-host-mapping.md
@@ -0,0 +1,34 @@
+### SSL域名映射
+
+SSL/TLS加密请求时,客户端需要在握手包中加入域名(Server Name Indication,简称SNI)用来请求服务器的证书。这是因为多个域名可能映射到了同一台服务器,服务器需要根据客户端请求的域名返回相应的SSL域名证书。HttpCanary会通过解析SNI来创建中间人(MITM)证书进行握手。
+
+
+
+在常规操作下,这个是没有任何问题的。但是在很多情况下,服务器只会映射一个域名,客户端为了提高响应速度,可以会使用IP直连的方式发起请求并且不在握手包中加入SNI,这时候HttpCanary便无法获取到域名来创建中间人证书了。无法创建中间人证书便无法解析SSL/TLS加密数据包,我们看到的数据便如下图所示:
+
+
+
+以上方的数据包为例。服务器端口是443,表明这极可能是一个HTTPS请求。第一个数据包是客户端发向服务器的Client Hello握手包,第二个包是服务器发向客户端的Server Hello握手包。图中Server Hello包内红色框内的信息是SSL证书的信息,证书的域名(CN)是github.com,但是第一个Client Hello握手包中并没有SNI信息,也就是没有github.com的信息。因此,HttpCanary获取到的都是加密的SSL/TLS数据包。
+
+这种情况下,需要手动进行SNI信息补全。
+
+#### 方式一:自动映射
+
+在更多选项的菜单中,点击“域名映射”进行自动将证书绑定的域名映射到当前IP。
+
+
+
+#### 方式二:手动映射
+
+除了自动映射外,还可以进行手动映射。在“设置->SSL证书管理->域名映射”中点击右上角“+”按钮添加域名和IP。
+
+
+
+除此之外,还支持映射域名的管理、批量导入和导出功能。
+
+
+
+配置完成域名映射后,便可以获取到HTTPS的明文数据包进行分析了!
+
+
+
diff --git a/tutorials/zh-hans/assets/cetificate_export.png b/tutorials/zh-hans/assets/cetificate_export.png
new file mode 100755
index 0000000..92b5e26
Binary files /dev/null and b/tutorials/zh-hans/assets/cetificate_export.png differ
diff --git a/tutorials/zh-hans/assets/cetificate_firefox1.png b/tutorials/zh-hans/assets/cetificate_firefox1.png
new file mode 100755
index 0000000..3093f0a
Binary files /dev/null and b/tutorials/zh-hans/assets/cetificate_firefox1.png differ
diff --git a/tutorials/zh-hans/assets/cetificate_firefox2.png b/tutorials/zh-hans/assets/cetificate_firefox2.png
new file mode 100755
index 0000000..917b7b4
Binary files /dev/null and b/tutorials/zh-hans/assets/cetificate_firefox2.png differ
diff --git a/tutorials/zh-hans/assets/cetificate_move.png b/tutorials/zh-hans/assets/cetificate_move.png
new file mode 100755
index 0000000..2dacb2e
Binary files /dev/null and b/tutorials/zh-hans/assets/cetificate_move.png differ
diff --git a/tutorials/zh-hans/assets/cetificate_trust.png b/tutorials/zh-hans/assets/cetificate_trust.png
new file mode 100755
index 0000000..3a5951d
Binary files /dev/null and b/tutorials/zh-hans/assets/cetificate_trust.png differ
diff --git a/tutorials/zh-hans/assets/http_audio.png b/tutorials/zh-hans/assets/http_audio.png
new file mode 100755
index 0000000..9ab9768
Binary files /dev/null and b/tutorials/zh-hans/assets/http_audio.png differ
diff --git a/tutorials/zh-hans/assets/http_cookie.png b/tutorials/zh-hans/assets/http_cookie.png
new file mode 100755
index 0000000..1238ba1
Binary files /dev/null and b/tutorials/zh-hans/assets/http_cookie.png differ
diff --git a/tutorials/zh-hans/assets/http_headers.png b/tutorials/zh-hans/assets/http_headers.png
new file mode 100755
index 0000000..43da45f
Binary files /dev/null and b/tutorials/zh-hans/assets/http_headers.png differ
diff --git a/tutorials/zh-hans/assets/http_hex.png b/tutorials/zh-hans/assets/http_hex.png
new file mode 100755
index 0000000..962d402
Binary files /dev/null and b/tutorials/zh-hans/assets/http_hex.png differ
diff --git a/tutorials/zh-hans/assets/http_image.png b/tutorials/zh-hans/assets/http_image.png
new file mode 100755
index 0000000..e14f9ee
Binary files /dev/null and b/tutorials/zh-hans/assets/http_image.png differ
diff --git a/tutorials/zh-hans/assets/http_json.png b/tutorials/zh-hans/assets/http_json.png
new file mode 100755
index 0000000..18fa424
Binary files /dev/null and b/tutorials/zh-hans/assets/http_json.png differ
diff --git a/tutorials/zh-hans/assets/http_overview.png b/tutorials/zh-hans/assets/http_overview.png
new file mode 100755
index 0000000..0267e85
Binary files /dev/null and b/tutorials/zh-hans/assets/http_overview.png differ
diff --git a/tutorials/zh-hans/assets/http_preview.png b/tutorials/zh-hans/assets/http_preview.png
new file mode 100755
index 0000000..deeb7d8
Binary files /dev/null and b/tutorials/zh-hans/assets/http_preview.png differ
diff --git a/tutorials/zh-hans/assets/http_raw.png b/tutorials/zh-hans/assets/http_raw.png
new file mode 100755
index 0000000..4225b1e
Binary files /dev/null and b/tutorials/zh-hans/assets/http_raw.png differ
diff --git a/tutorials/zh-hans/assets/http_save.png b/tutorials/zh-hans/assets/http_save.png
new file mode 100755
index 0000000..6bcd9d8
Binary files /dev/null and b/tutorials/zh-hans/assets/http_save.png differ
diff --git a/tutorials/zh-hans/assets/http_set-cookie.png b/tutorials/zh-hans/assets/http_set-cookie.png
new file mode 100755
index 0000000..e541d77
Binary files /dev/null and b/tutorials/zh-hans/assets/http_set-cookie.png differ
diff --git a/tutorials/zh-hans/assets/http_share.png b/tutorials/zh-hans/assets/http_share.png
new file mode 100755
index 0000000..e88dc58
Binary files /dev/null and b/tutorials/zh-hans/assets/http_share.png differ
diff --git a/tutorials/zh-hans/assets/http_text.png b/tutorials/zh-hans/assets/http_text.png
new file mode 100755
index 0000000..960f01a
Binary files /dev/null and b/tutorials/zh-hans/assets/http_text.png differ
diff --git a/tutorials/zh-hans/assets/http_url.png b/tutorials/zh-hans/assets/http_url.png
new file mode 100755
index 0000000..12e968d
Binary files /dev/null and b/tutorials/zh-hans/assets/http_url.png differ
diff --git a/tutorials/zh-hans/assets/http_video.png b/tutorials/zh-hans/assets/http_video.png
new file mode 100755
index 0000000..de0afa9
Binary files /dev/null and b/tutorials/zh-hans/assets/http_video.png differ
diff --git a/tutorials/zh-hans/assets/install_paralle_space.png b/tutorials/zh-hans/assets/install_paralle_space.png
new file mode 100755
index 0000000..a2b3174
Binary files /dev/null and b/tutorials/zh-hans/assets/install_paralle_space.png differ
diff --git a/tutorials/zh-hans/assets/install_system_cetificate.png b/tutorials/zh-hans/assets/install_system_cetificate.png
new file mode 100755
index 0000000..57eec4e
Binary files /dev/null and b/tutorials/zh-hans/assets/install_system_cetificate.png differ
diff --git a/tutorials/zh-hans/assets/install_user_cetificate.png b/tutorials/zh-hans/assets/install_user_cetificate.png
new file mode 100755
index 0000000..420eeb6
Binary files /dev/null and b/tutorials/zh-hans/assets/install_user_cetificate.png differ
diff --git a/tutorials/zh-hans/assets/install_vpn.png b/tutorials/zh-hans/assets/install_vpn.png
new file mode 100755
index 0000000..854395b
Binary files /dev/null and b/tutorials/zh-hans/assets/install_vpn.png differ
diff --git a/tutorials/zh-hans/assets/main_page.png b/tutorials/zh-hans/assets/main_page.png
new file mode 100755
index 0000000..6aefc74
Binary files /dev/null and b/tutorials/zh-hans/assets/main_page.png differ
diff --git a/tutorials/zh-hans/assets/paralle_space_capture.png b/tutorials/zh-hans/assets/paralle_space_capture.png
new file mode 100755
index 0000000..6819c71
Binary files /dev/null and b/tutorials/zh-hans/assets/paralle_space_capture.png differ
diff --git a/tutorials/zh-hans/assets/plugin.png b/tutorials/zh-hans/assets/plugin.png
new file mode 100755
index 0000000..0a0c22b
Binary files /dev/null and b/tutorials/zh-hans/assets/plugin.png differ
diff --git a/tutorials/zh-hans/assets/plugin_repo.png b/tutorials/zh-hans/assets/plugin_repo.png
new file mode 100755
index 0000000..3274b35
Binary files /dev/null and b/tutorials/zh-hans/assets/plugin_repo.png differ
diff --git a/tutorials/zh-hans/assets/ssl_host_mapping1.png b/tutorials/zh-hans/assets/ssl_host_mapping1.png
new file mode 100755
index 0000000..2dd4231
Binary files /dev/null and b/tutorials/zh-hans/assets/ssl_host_mapping1.png differ
diff --git a/tutorials/zh-hans/assets/ssl_host_mapping2.png b/tutorials/zh-hans/assets/ssl_host_mapping2.png
new file mode 100755
index 0000000..f851977
Binary files /dev/null and b/tutorials/zh-hans/assets/ssl_host_mapping2.png differ
diff --git a/tutorials/zh-hans/assets/ssl_host_mapping3.png b/tutorials/zh-hans/assets/ssl_host_mapping3.png
new file mode 100755
index 0000000..edbafa8
Binary files /dev/null and b/tutorials/zh-hans/assets/ssl_host_mapping3.png differ
diff --git a/tutorials/zh-hans/assets/ssl_host_mapping4.png b/tutorials/zh-hans/assets/ssl_host_mapping4.png
new file mode 100755
index 0000000..7219df5
Binary files /dev/null and b/tutorials/zh-hans/assets/ssl_host_mapping4.png differ
diff --git a/tutorials/zh-hans/assets/ssl_sni.png b/tutorials/zh-hans/assets/ssl_sni.png
new file mode 100644
index 0000000..385efa6
Binary files /dev/null and b/tutorials/zh-hans/assets/ssl_sni.png differ
diff --git a/tutorials/zh-hans/assets/tcp_udp_hex.png b/tutorials/zh-hans/assets/tcp_udp_hex.png
new file mode 100755
index 0000000..6d9a5ed
Binary files /dev/null and b/tutorials/zh-hans/assets/tcp_udp_hex.png differ
diff --git a/tutorials/zh-hans/assets/tcp_udp_more.png b/tutorials/zh-hans/assets/tcp_udp_more.png
new file mode 100755
index 0000000..2f1b7b2
Binary files /dev/null and b/tutorials/zh-hans/assets/tcp_udp_more.png differ
diff --git a/tutorials/zh-hans/assets/tcp_udp_text.png b/tutorials/zh-hans/assets/tcp_udp_text.png
new file mode 100755
index 0000000..2e939fa
Binary files /dev/null and b/tutorials/zh-hans/assets/tcp_udp_text.png differ
diff --git a/tutorials/zh-hans/assets/websockets_diagram.png b/tutorials/zh-hans/assets/websockets_diagram.png
new file mode 100755
index 0000000..d05a3b8
Binary files /dev/null and b/tutorials/zh-hans/assets/websockets_diagram.png differ
diff --git a/tutorials/zh-hans/assets/websockets_overview.png b/tutorials/zh-hans/assets/websockets_overview.png
new file mode 100755
index 0000000..8cae760
Binary files /dev/null and b/tutorials/zh-hans/assets/websockets_overview.png differ
diff --git a/tutorials/zh-hans/basic/README.md b/tutorials/zh-hans/basic/README.md
new file mode 100644
index 0000000..cd62001
--- /dev/null
+++ b/tutorials/zh-hans/basic/README.md
@@ -0,0 +1,13 @@
+### 基本操作
+
+HttpCanary支持抓取TCP/UDP传输层的协议,但是只能解析HTTP和WebSocket两种应用层协议,其它应用层协议会以原始的数据显示并标记为TCP还是UDP。
+
+
+
+上图中第一条是HTTP协议,第二条是基于TCP的协议,第二条是基于UDP的协议,第四条是WebSocket协议。
+
+下面我们看以下这几种协议的具体数据内容。
+
+- [HTTP协议](/basic/http.md)
+- [WebSocket协议](/basic/websocket.md)
+- [基于TCP/UDP的协议](/basic/tcp-udp.md)
\ No newline at end of file
diff --git a/tutorials/zh-hans/basic/http.md b/tutorials/zh-hans/basic/http.md
new file mode 100644
index 0000000..93e600d
--- /dev/null
+++ b/tutorials/zh-hans/basic/http.md
@@ -0,0 +1,136 @@
+### HTTP协议
+
+#### 1. HTTP协议格式
+
+HTTP是超文本传输协议(Hypertext Transfer Protocol)的简称,传输层是基于TCP协议。
+
+首先,需要了解HTTP协议的报文格式,下面是一个最简单的HTTP请求和响应范例。
+
+请求报文:
+```
+GET /index.html HTTP/1.1
+Host: www.httpcanary.com
+```
+第1行被称为请求行,第2行被称为请求头(可以有多个),后面还可能有请求体(这里GET请求没有请求体)。
+
+响应报文:
+```
+HTTP/1.1 200 OK
+Server: Apache
+Connection: Keep-Alive
+Content-Type: text/html; charset=UTF-8
+Content-Length: 12
+
+Hello World!
+```
+第1行被称为响应行,第2-4行被称为响应头,最后一行是响应体。
+
+实际应用中,HTTP协议的格式远比这个要复杂地多,这里不做过多讲解,更多的细节请[点我阅读](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview)。
+
+#### 2. HTTP协议视图
+
+HttpCanary支持对HTTP协议的解析,包括HTTP1.0、HTTP1.1以及HTTP2,并提供了丰富的操作视图。
+
+在抓包内容页,左右滑动切换请求和响应内容。点击下方的标签可以切换不同的视图。
+
+##### 2.1 总览视图
+
+下面是一张HTTP1.1协议的内容总览图:
+
+
+
+总览图概括了HTTP请求的基本信息,包括URL、服务器信息、内容类型、时间以及数据量等。
+
+##### 2.2 Raw视图
+
+Raw视图展示HTTP协议的原始数据(HTTP2协议会自动转为标准的HTTP1.x格式),可以长按内容进行选择复制。
+
+
+
+##### 2.3 Headers视图
+
+HTTP的请求头和响应头在Headers视图中进行显示,点击Headers子项,可以进行更多操作。
+
+
+
+##### 2.4 HEX视图
+
+HttpCanary提供了HEX视图以十六进制显示请求体和响应体,方便开发者分析数据格式。
+
+
+
+##### 2.5 Text视图
+
+Text视图以文本形式展示请求体和响应体,并会自动对内容进行解码,支持gzip、chunked以及Brotli等编码格式。
+
+
+
+注:非文本格式的内容仍然会显示为乱码。
+
+##### 2.6 预览视图
+
+HttpCanary支持对部分格式数据进行格式化和预览,例如json、图片、音频和视频等。
+
+例如最常见的json格式,会自动格式化:
+
+
+
+##### 2.7 JSON视图
+
+虽然预览已经支持json格式的格式化,但是HttpCanary仍然提供了专业的JSON彩色视图,点击预览内容即可进入。JSON视图支持节点的闭合和展开,并且可以点击节点进行更多的操作。
+
+
+
+##### 2.8 图片视图
+
+HttpCanary支持图片内容的预览,点击内容页图片后进入图片预览模式,可以手势放大和缩小,并且可以点击右上角进行保存。
+
+
+
+图片视图既支持gif、webp等格式动图,也支持jpg、png等静态图片。
+
+##### 2.9 音频视图
+
+HttpCanary支持播放音频内容,包括mp3、wav、aac、ogg等标准音频格式。
+
+
+
+##### 2.10 视频视图
+
+视频内容也是支持直接播放的,包括mp4、wav等标准视频格式。
+
+
+
+##### 2.11 URL视图
+
+部分URL可能含有非常多的参数,可以点击进入详细的预览页面,方便对参数进行详细的操作。
+
+
+
+##### 2.12 Cookie视图
+
+Cookie作为网页中常用的数据,HttpCanary也对其设计了相应视图,包括Set-Cookie内容和Cookie内容。
+
+
+
+
+
+
+#### 3. HTTP内容的保存和分享
+
+##### 3.1 保存
+
+在抓包内容页面,点击右上角的保存按钮,可以对抓包数据进行保存。保存的目录为sdcard下的HttpCanary/download目录,保存的文件有两个,一个原始的抓包数据格式为.hcy,另一个为请求体或响应体的内容。
+
+
+
+另外,hcy格式可以在文件管理器中重新使用HttpCanary打开。
+
+##### 3.2 分享
+
+HTTP分享可以选择单独分享请求或者响应,也可以选择合并分享,但是合并分享有部分应用不支持,例如微信和QQ等。
+
+
+
+
+
diff --git a/tutorials/zh-hans/basic/tcp-udp.md b/tutorials/zh-hans/basic/tcp-udp.md
new file mode 100644
index 0000000..3b9f812
--- /dev/null
+++ b/tutorials/zh-hans/basic/tcp-udp.md
@@ -0,0 +1,25 @@
+### TCP/UDP协议
+
+#### 1. TCP/UDP协议格式
+
+TCP和UDP是两种传输层协议,绝大多数网络协议的传输层都是基于这两种协议,比如HTTP、XMPP、MQTT、RTSP协议等等。HttpCanary支持对TCP/UDP协议进行分析,如果应用层协议是HTTP协议,会自动解析成HTTP协议格式,如果应用层是未知协议,则会回以原始TCP/UDP的数据格式进行显示。
+
+#### 2. TCP/UDP协议视图
+
+由于原始TCP/UDP协议基本都是二进制格式的,所以HttpCanary以文本形式显示会变成乱码,这是正常现象。向左的箭头表示,此数据包是由客户端发向服务器的包;向右的箭头表示,此数据包是由服务器发向客户端的包。
+
+
+
+推荐大家在分析TCP/UDP协议的时候,使用HEX视图。通过分析二进制的数据格式,大体可以分析到具体使用的应用层协议。由于HttpCanary只处理HttpCanary的应用层协议,所以其它应用层协议的识别和分析工作需要由使用者自行完成。
+
+
+
+在更多菜单栏中,支持对协议内容进行保存、分享、复制和视图切换等操作。
+
+
+
+
+
+
+
+
diff --git a/tutorials/zh-hans/basic/websocket.md b/tutorials/zh-hans/basic/websocket.md
new file mode 100644
index 0000000..76c57c1
--- /dev/null
+++ b/tutorials/zh-hans/basic/websocket.md
@@ -0,0 +1,22 @@
+### WebSocket协议
+
+#### 1. WebSocket协议格式
+
+WebSocket是一种在单个TCP连接上进行全双工通讯的协议。建立一个WebSocket连接,客户端首先要向服务器发起一个HTTP请求,这个请求和通常的HTTP请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的HTTP请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的WebSocket连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。
+
+WebSocket协议的协议交互流程如下:
+
+
+
+#### 2. WebSocket协议视图
+
+HttpCanary支持对WebSocket协议的解析,以对话的形式展示客户端和服务端的数据交互。
+
+
+
+
+
+
+
+
+
diff --git a/tutorials/zh-hans/coming.md b/tutorials/zh-hans/coming.md
new file mode 100644
index 0000000..a40cc60
--- /dev/null
+++ b/tutorials/zh-hans/coming.md
@@ -0,0 +1,2 @@
+### 未完待续
+
diff --git a/tutorials/zh-hans/download.md b/tutorials/zh-hans/download.md
new file mode 100644
index 0000000..0614182
--- /dev/null
+++ b/tutorials/zh-hans/download.md
@@ -0,0 +1,21 @@
+### 最新版本
+
+#### v3.3.3
+- 新增全局搜索、排序、多选等功能。
+- 新增批量保存、压缩保存、批量添加黑白名单等功能。
+- 重构和优化过滤、保存功能。
+- 重新设计列表非应用类Icon、标题栏内容等样式。
+- 修复启动加载时间过长的bug。
+- 修复标题栏子菜单图标不显示的bug。
+- 修复安装证书横竖屏切换等场景出现无限循环安装证书的bug。
+- 修复一些其它UI显示的细节问题。
+
+
+### 下载
+
+- [Google Play](https://play.google.com/store/apps/details?id=com.guoshi.httpcanary)
+
+
+### 限制
+- 因政策原因,HttpCanary不在中国大陆地区任何应用商店和平台进行发布、下载和销售!
+- 通过跨区方式获取的HttpCanary版本,我们将会对其部分功能进行限制和禁用。
diff --git a/tutorials/zh-hans/feedback.md b/tutorials/zh-hans/feedback.md
new file mode 100644
index 0000000..2653e4f
--- /dev/null
+++ b/tutorials/zh-hans/feedback.md
@@ -0,0 +1,12 @@
+### 反馈与交流
+
+您可以给开发者反馈您对软件功能的想法、积极的建议、遇到的问题和bug等,和HttpCanary一起成长!
+
+反馈时建议描述清楚细节,如果能提供示例样本(例如url/curl/截图等)以及设备型号新版版本等信息,是最好不过的了。
+
+#### 1. Github提交Issue(推荐)
+使用Github的issue反馈建议或者bug,开发者会不定期查看并回复。
+
+#### 2. 邮件support@httpcanary.com
+如果是遇到问题,建议在HttpCanary中提前保存好抓包文件,邮件附件给开发者,这样可以有效提高我们的沟通效率。
+
diff --git a/tutorials/zh-hans/install.md b/tutorials/zh-hans/install.md
new file mode 100644
index 0000000..d6c589f
--- /dev/null
+++ b/tutorials/zh-hans/install.md
@@ -0,0 +1,126 @@
+### 安装
+
+#### 1. 配置VPN(必须)
+
+HttpCanary使用VPN拦截设备流量来实现网络数据抓包,所以必须配置VPN才能使用HttpCanary。
+
+
+
+
+
+#### 2. 安装根证书(必须)
+
+**安装证书要求设备必须设置锁屏密码或者图案,请按照系统提示进行设置(此乃系统限制与HttpCanary无关)**
+
+HttpCanary使用Man-in-the-Middle(MITM)技术抓取和解析TLS/SSL协议数据包,比如常见的HTTPS、WSS等加密请求,所以使用之前必须先安装HttpCanary根证书。安装时,默认点击确定即可,请勿修改配置。
+
+
+
+
+
+#### 3. 证书升级为系统证书(7.0+强烈建议)
+
+**此步骤需要Root设备,7.0(包括)以上系统强烈建议配置此项,5.0-6.0系统可以跳过此步骤。**
+
+从Android Nougat(7.0)开始,谷歌改变了网络安全策略。用户安装的CA证书将默认不被TLS/SSL连接信任,这意味着HttpCanary可能无法抓取TLS/SSL加密的数据包,抓包时表现为无网络。我们可以将上一步安装的证书升级为系统证书。
+
+##### 3.1 方式一:HttpCanary内一键升级
+
+
+
+此方式可能会失败,如果失败了,请参考下面其它方式。
+
+##### 3.2 方式二:手动导入
+
+首先,导出前面第2步中已经安装的根证书文件。此文件可以在/data/misc/user/0/cacerts-added/目录下面找到(如果有多个文件,需要自行按照时间区分),也可以在HttpCanary的根证书设置中导出到SD存储卡。
+
+
+
+接下来,将.0格式文件(勿改名),导入到系统CA证书目录/system/etc/security/cacerts/下。
+
+导入方式有多种:
+
+- adb命令导入
+
+此方式要求安装adb工具,适合Android开发者使用,如果未安装adb工具,请参考其它方式。
+
+```shell
+# 87bc3517.0为证书文件,名称以导出为准
+adb root
+adb shell
+mount -o rw,remount /system
+cp -f /sdcard/HttpCanary/87bc3517.0 /system/etc/security/cacerts
+```
+
+- mt管理器2导入
+
+使用mt管理器2进行证书文件导入,直接将.0格式证书文件复制到/system/etc/security/cacerts目录即可(需挂载系统读写状态)。
+
+
+
+##### 3.3 证书升级成功校验
+
+证书升级系统证书成功后,可以在系统“设置->加密与凭据->信任的凭据->系统”页面中找到添加的HttpCanary系统证书。
+
+
+
+##### 3.4 注意事项
+
+- 此操作需要在Root设备上进行。
+- 7.0以下设备无需配置此项。
+- 升级/重启系统可能会删除重置系统证书文件,请检查后重新导入。
+- 升级系统证书完成后,请勿卸载第2步已安装用户证书。
+
+
+
+#### 4. 安装证书添加至火狐浏览器
+
+火狐浏览器非常适合用来抓取网页数据包,但是火狐浏览器使用非系统的CA证书进行认证,所以安装的HttpCanary证书无法生效,需要将其添加到火狐浏览器中。
+
+
+
+在HttpCanary内的火狐浏览器证书安装界面,点击安装并选择火狐浏览器打开,火狐浏览器会自动弹出证书安装弹框,勾选所有的信任项并确定(**注意勾选全部选项**)。
+
+
+
+
+
+#### 5. 安装平行空间(7.0+非root强烈建议)
+
+如果设备系统版本是Android 7.0(包括)以上的非root用户,强烈建议安装平行空间进行辅助抓包。5.0-6.0的系统可以忽略此步骤。
+
+**注意:平行空间不支持Android Q版本**
+
+由于升级系统证书需要Root设备,所以对于无法Root设备的用户使用平行空间作为抓包辅助,可以解决部分应用抓包无网络的问题。
+
+##### 5.1 安装方式
+
+初始化完成HttpCanary后,在HttpCanary的设置中找到安装平行空间的入口。如果是64位的设备会显示两个平行空间安装选项,请依次进行安装(缺一不可)。安装时8.0及以上的手机会限制安装来源,请勾选同意(安装完成后可以再关闭权限)。
+
+
+
+**注意:平行空间版本必须使用HttpCanary内置的版本,高于此版本抓包无效**
+
+##### 5.2 平行空间的使用
+
+对于部分抓包无网的应用,可以使用平行空间打开此应用(打开目标应用,而非打开HttpCanary)。
+
+
+
+然后使用HttpCanary对平行空间进行抓包,便可以抓到目标应用的数据包。
+
+---
+
+#### 总结一下
+
+- 7.0以下版本手机,无需升级证书无需安装平行空间,抓包非常友好。
+- 7.0以上版本手机,Root的升级证书,非Root的安装平行空间。
+
+
+**安装教程到此结束啦!下面开始愉快地使用HttpCanary吧!**
+
+
+
+
+
+
diff --git a/tutorials/zh-hans/plugins/README.md b/tutorials/zh-hans/plugins/README.md
new file mode 100644
index 0000000..f13ab9e
--- /dev/null
+++ b/tutorials/zh-hans/plugins/README.md
@@ -0,0 +1,20 @@
+### 插件
+
+HttpCanary支持插件功能,可以实现对抓包数据的定制化拦截处理,例如注入器就是依赖于插件模式进行实现的。虽然我们还没有开放插件接口,但是提供了一些内置的插件供大家使用。
+
+#### 插件管理
+
+插件管理从侧滑栏中入口进入,里面会显示已经配置的注入器插件、屏蔽器插件和自定义插件。
+
+
+
+#### 插件仓库
+
+插件仓库内目前只显示了HttpCanary内置的几个试验性插件。
+
+
+
+#### 插件SDK
+
+由于插件SDK尚未完全规划好,暂不开放,目前已经规划进4.0大版本中,请耐心等待!
+
diff --git a/tutorials/zh-hans/plugins/audio-download.md b/tutorials/zh-hans/plugins/audio-download.md
new file mode 100644
index 0000000..a4a7403
--- /dev/null
+++ b/tutorials/zh-hans/plugins/audio-download.md
@@ -0,0 +1,17 @@
+### 音频下载器
+
+此插件可以用来自动保存抓包过程中的音频数据,保存的目录是/HttpCanary/plugins/AudioDownloader。
+
+**此插件免费版本仅限试用期内可用**
+
+支持的音频格式类型如下:
+- aac
+- mp3
+- m4a
+- ogg
+- wav
+- flac
+- ape
+- webm
+- opus
+- m3u8
diff --git a/tutorials/zh-hans/plugins/host-block.md b/tutorials/zh-hans/plugins/host-block.md
new file mode 100644
index 0000000..1b9efba
--- /dev/null
+++ b/tutorials/zh-hans/plugins/host-block.md
@@ -0,0 +1,27 @@
+### Host屏蔽
+
+**此插件历史版本存在bug,请升级到v3.1.5及之后版本**
+
+Host屏蔽插件可以指定host和IP来进行特定网络请求的屏蔽。Host和IP需要在/HttpCanary/plugins/HostBlock/hosts.txt中进行配置,安装插件的时候会自动创建文件,使用者只需要编辑输入Host和IP即可,Host和IP支持使用 * 和 ? 通配符匹配。
+
+hosts.txt内配置Host和IP的格式如下:
+```
+# 屏蔽指定的QQ的域名
+xw.qq.com
+
+# 屏蔽百度全部域名(使用*通配符)
+*.baidu.com
+
+# 屏蔽指定IP
+112.25.105.102
+
+# 屏蔽112.25.105.240到112.25.105.249范围内全部IP(使用?通配符)
+112.25.105.24?
+
+# 屏蔽223.111开头的全部域名(使用*通配符)
+223.111.*.*
+```
+
+下面是一个具体的示例:
+
+[示例文件](https://raw.githubusercontent.com/MegatronKing/HttpCanary/master/plugins/HostBlock/hosts.txt)
\ No newline at end of file
diff --git a/tutorials/zh-hans/plugins/http-overview.md b/tutorials/zh-hans/plugins/http-overview.md
new file mode 100644
index 0000000..76b2789
--- /dev/null
+++ b/tutorials/zh-hans/plugins/http-overview.md
@@ -0,0 +1,26 @@
+### HTTP总览统计
+
+此插件用于统计HTTP的总览信息,并生成Excel报表,报表存储在/HttpCanary/plugins/StatsOverview目录下。
+
+**此插件免费版本仅限试用期内可用**
+
+统计的总览信息包含如下:
+- url
+- 服务器IP
+- 协议版本
+- 请求方法
+- 响应状态码
+- 请求开始时间戳
+- 响应开始时间戳
+- 结束时间戳
+- 请求数据量
+- 响应数据量
+- 请求开始->响应开始耗时
+- 请求开始->结束耗时
+
+**PS**
+- 响应开始时间戳为收到响应状态码的时间点,结束时间戳为响应数据全部收到的时间点。
+
+下面是一个统计的Excel文件示例:
+
+[示例文件](https://raw.githubusercontent.com/MegatronKing/HttpCanary/master/plugins/HttpOverview/http-overview.xls)
\ No newline at end of file
diff --git a/tutorials/zh-hans/plugins/image-download.md b/tutorials/zh-hans/plugins/image-download.md
new file mode 100644
index 0000000..8c46d47
--- /dev/null
+++ b/tutorials/zh-hans/plugins/image-download.md
@@ -0,0 +1,12 @@
+### 图片下载器
+
+此插件可以用来自动保存抓包过程中的图片数据,保存的目录是/HttpCanary/plugins/ImageDownloader。
+
+支持的图片格式类型如下:
+- png
+- jpeg
+- jpg
+- webp
+- gif
+- bmp
+- svg
diff --git a/tutorials/zh-hans/plugins/location.md b/tutorials/zh-hans/plugins/location.md
new file mode 100644
index 0000000..ec1f4c6
--- /dev/null
+++ b/tutorials/zh-hans/plugins/location.md
@@ -0,0 +1,9 @@
+### 网络定位漂移
+
+此插件可以用来修改网络请求定位,目前只支持腾讯系的定位接口,例如微信定位等。
+
+**此插件仅限高级版本可用**
+
+启用此插件后,需要将修改后的位置复制到手机粘贴板,格式为:**经度,纬度**。
+
+使用者可以使用[百度坐标拾取系统](http://api.map.baidu.com/lbsapi/getpoint/index.html)选择位置,然后直接复制经纬度坐标即可。
\ No newline at end of file
diff --git a/tutorials/zh-hans/plugins/mime-type-block.md b/tutorials/zh-hans/plugins/mime-type-block.md
new file mode 100644
index 0000000..298fb54
--- /dev/null
+++ b/tutorials/zh-hans/plugins/mime-type-block.md
@@ -0,0 +1,21 @@
+### Mime-Type屏蔽
+
+Mime-Type屏蔽插件可以对指定HTTP网络协议的请求或响应进行屏蔽。用户需要在/HttpCanary/plugins/MimeTypeBlock/req-mimes.txt或res-mimes.txt中进行配置,前者是屏蔽请求数据,后者是屏蔽响应数据。安装插件的时候会自动创建文件,使用者只需要编辑输入指定的Mime-Type即可,**v3.1.5版本**及之后支持使用 * 和 ? 通配符匹配。
+
+以req-mimes.txt为例,配置的Mime-Type格式如下:
+```
+# 屏蔽所有图片请求(使用*通配符)
+image/*
+
+# 屏蔽JSON请求
+application/json
+```
+
+下面是req-mimes.txt和res-mimes.txt的两个具体示例:
+
+[示例文件](https://raw.githubusercontent.com/MegatronKing/HttpCanary/master/plugins/MimeTypeBlock/req-mimes.txt)
+
+[示例文件](https://raw.githubusercontent.com/MegatronKing/HttpCanary/master/plugins/MimeTypeBlock/res-mimes.txt)
+
+关于Mime-Type的类型,可以参考:
+[官方MimeType列表](https://www.iana.org/assignments/media-types/media-types.xhtml)
\ No newline at end of file
diff --git a/tutorials/zh-hans/plugins/packets-upload.md b/tutorials/zh-hans/plugins/packets-upload.md
new file mode 100644
index 0000000..4eb1fdb
--- /dev/null
+++ b/tutorials/zh-hans/plugins/packets-upload.md
@@ -0,0 +1,52 @@
+### 上传服务器
+
+此插件可以将数据包文件打包上传到指定服务器。如果手机和电脑是在同一个局域网下,将电脑作为本地服务器,便可以自动同步手机的数据包文件到电脑。当然可以配置上传到远程服务器,原理是相同的。另外,数据包上传是在每次抓包停止的时候触发。
+
+**此插件仅限高级版本可用**
+
+本教程旨在说明如何在电脑配置一个本地服务器,将HttpCanary捕获的网络数据包上传到电脑。
+
+#### 配置HttpCanary插件文件
+
+在/HttpCanary/plugins/PacketsUpload目录下的config.json中配置电脑的IP地址,例如192.168.1.4,端口号是9090。同时我们配置了一个自定义的header(可选)。
+```json
+{
+ "hello": "ok",
+ "server": "http://192.168.1.4:9090"
+}
+```
+
+#### 配置本地服务器
+
+这里使用nodejs来快速搭建服务器,当然也可以使用其它框架。在github上已经提供了服务端的nodejs代码,可以直接运行,[点我查看](https://github.com/MegatronKing/HttpCanary/tree/master/plugins/PacketsUpload)。
+
+##### 1. 安装nodejs
+
+首先需要安装nodejs,可以从[官网](https://nodejs.org)下载,也可以使用电脑自带的包管理器。
+
+##### 2. 配置服务器代码
+
+下载上面的app.js和package.json两个文件,放到同一个目录下面:
+```
+ .
+ ├── app.js
+ └── package.json
+```
+
+运行npm命令安装依赖包:
+```
+npm install
+```
+
+##### 3. 启动服务器
+
+运行node命令启动服务器:
+```
+node app.js
+```
+
+在手机上操作一番,当抓包完成后,便可以在服务器文件夹中看到同步过来的数据包文件了!数据包文件格式是hcy二进制格式的,PC端没有相应的软件可以直接打开,但是可以用HEX等文件进行分析。
+
+##### 4. 注意事项
+
+**为了您的隐私安全,请勿配置未知来源的服务器地址**
\ No newline at end of file
diff --git a/tutorials/zh-hans/plugins/video-download.md b/tutorials/zh-hans/plugins/video-download.md
new file mode 100644
index 0000000..1fa14d6
--- /dev/null
+++ b/tutorials/zh-hans/plugins/video-download.md
@@ -0,0 +1,15 @@
+### 视频下载器
+
+此插件可以用来自动保存抓包过程中的视频数据,保存的目录是/HttpCanary/plugins/VideoDownloader。
+
+**此插件仅限高级版本可用**
+
+支持的视频格式类型如下:
+- mkv
+- rmvb
+- avi
+- mp4
+- wmv
+- mov
+- flv
+- webm