From d744126d021adcb0b8cadc255ee3ea824d6d7c91 Mon Sep 17 00:00:00 2001 From: xtaci Date: Wed, 11 Dec 2024 15:37:14 +0800 Subject: [PATCH] Update README.md --- README.md | 48 ++++++++++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 65a106a..58b6bc6 100644 --- a/README.md +++ b/README.md @@ -2,33 +2,29 @@ **Grasshopper** is a UDP packet forwarder that listens for incoming packets and forwards them to a configured destination. It optionally supports cryptography for both incoming and outgoing packets, using different keys and methods. ## Architecture -Grasshopper functions as a chained relay system. For example: +Grasshopper functions as a chained relay system. Take a chained DNS query For example: ``` - ┌───────────────┐ - │ RE-ENCRYPTION │ - └───────┬───────┘ - │ - │ - │ - │ - ┌─────────┐ ┌────HOP2────┐ │ ┌─HOP5────┐ - │ HOPS │ │ │ │ │ -┌─────────────┐ Client ┌────┐ ClientPLAIN HOPS │ Client HOPS ┌─────────────┐ -│ │ AES │HOP1┼─────► 3DES TEXT ┌────┐ ▼ BLOWFISH ┌─────┐ │ │ -│ UDP CLIENT ├───► │ DATA │Hop2│ │ PACKET │Hop4├──────►│ │ Hop6│───►│ UDP SERVER │ -│ │ │ ▲ │HOP3│ │ ▲ │Hop5│ │ │ Hop7│ │ │ -└─────────────┘ │ │ └────┘ │ │ └────┘ │ └─────┘ └─────────────┘ - └────┼────┘ └─────┼──────┘ └─────────┘ - │ │ - │ │ - │ │ - ┌────┼──────┐ │ - │ │ │ - │ OPTIONAL ┼───────────────┘ - │ PACKET │ - │ PROCESSOR │ - │ │ - └───────────┘ + ┌────────────┐ ┌───────────────┐ + │ ENCRYPTED │ │ RE-ENCRYPTION │ + └──────┬─────┘ │ AES ───► 3DES │ + │ └───┬───────────┘ + │ │ + ┌─────────┐▼ ┌────────────┐│ ┌─────────┐ + HOPS(AES) │ DECRYPTED │▼ │ +┌───────────────┐ └ ┌────┐ └ DATA HOPS(3DES) └ HOPS(FINAL) +│ dig xxx @hop0 ┼──► CLEAR TEXT │HOP1┼─CIPHER──► PACKET ┌─┴──┐ CIPHERTEXT ┌────┐ ┌────────────┐ +└───────────────┘ ┌ │Hop2│ ┌ │Hop4├──────►(3DES) │Hop6│───►│ 8.8.8.8:53 │ + │ ▲ │HOP3│ ▲ │Hop5│ ┌ │Hop7│ └────────────┘ + │ │ └────┘ │ │ └─┬──┘ │ └────┘ + └──┼──────┘ └─────┼──────┘ └─────────┘ + │ │ + ┌──┼────────┐ │ + │ │ │ + │ OPTIONAL ┼───────────────┘ + │ PACKET │ + │ PROCESSOR │ + │ │ + └───────────┘ ``` ## Installation