2022-01-04 08:57:53 +00:00
# SpoofDPI
2022-01-04 09:35:03 +00:00
A simple and fast software designed to bypass **Deep Packet Inspection**
2022-01-04 09:12:38 +00:00
![image ](https://user-images.githubusercontent.com/45588457/148035986-8b0076cc-fefb-48a1-9939-a8d9ab1d6322.png )
2022-01-03 08:43:30 +00:00
2022-01-04 11:02:54 +00:00
See in other Languages: [English ](https://github.com/xvzc/SpoofDPI ), [한국어 ](https://github.com/xvzc/SpoofDPI/blob/main/readme_ko.md )
2022-01-04 10:19:43 +00:00
# Dependencies
- Go
2022-01-04 09:11:43 +00:00
# Installation
2022-01-04 09:35:03 +00:00
- With **go install**
2022-01-04 09:11:43 +00:00
`$ go install github.com/xvzc/SpoofDPI/cmd/spoof-dpi`
2022-01-04 09:35:03 +00:00
> Remember that $GOPATH variable should be set in your $PATH
2022-01-03 08:45:15 +00:00
2022-01-04 09:35:03 +00:00
- Or you can build your own
`$ git clone https://github.com/xvzc/SpoofDPI.git`
`$ cd SpoofDPI`
2022-01-04 09:11:43 +00:00
`$ go build ./cmd/...`
# Run
2022-01-04 10:18:15 +00:00
### OSX
Run `$ spoof-dpi`
2022-01-03 08:45:15 +00:00
2022-01-04 10:18:15 +00:00
### Linux
Run `$ spoof-dpi` and open your favorite browser with proxy option
2022-01-03 08:45:15 +00:00
`google-chrome --proxy-server="http://127.0.0.1:8080"`
2022-01-03 08:43:30 +00:00
2022-01-04 10:18:15 +00:00
### Windows
2022-01-04 09:35:03 +00:00
Use [GoodbyeDPI ](https://github.com/ValdikSS/GoodbyeDPI ) instead
# Usage
```
Usage: spoof-dpi [options...]
-dns=< addr > | default: 8.8.8.8
-port=< port > | default: 8080
```
2022-01-04 10:18:15 +00:00
# How it works
### HTTP
Since most of websites in the world now support HTTPS, SpoofDPI doesn't bypass Deep Packet Inspections for HTTP requets, However It still serves proxy connection for all HTTP requests.
### HTTPS
Although the HTTPS requests are encryted with TLS, the domains are still shown as plaintext in the encryted requests.
In other words, when someone else looks on a packet, they can easily identify where the packet is headed to.
2022-01-04 10:19:43 +00:00
I had tried some ways to bypass the inspections, and found out that it seems like only the first chunk is inspected when we send the encryted request in chunks.
2022-01-04 10:18:15 +00:00
What SpoofDPI does to bypass this is to send the first 1 byte of a request to the server,
and then send the rest.
> SpoofDPI doesn't decrypt your HTTPS requests, and that's why we don't need the SSL certificates.
2022-01-04 09:35:03 +00:00
# Inspiration
[Green Tunnel ](https://github.com/SadeghHayeri/GreenTunnel )
2022-01-04 09:35:48 +00:00
[GoodbyeDPI ](https://github.com/ValdikSS/GoodbyeDPI )