глянул что там на главной - ТАКОЕ я бы и сам забанил=))
чтобы попасть на такие сайты хватает этого -i 127.0.0.1 --disorder 1 --fake -1 --tls-sni=www.google.com
смотрел там сериал - лихие, вполне не плохой
Большое спасибо, что откликнулись!
Но, к сожалению, пробить эти сайты через Bye так и не смог.
Ладно, видимо не судьба.
Not working.
freebsd-test.go:
package main
import (
"flag"
"fmt"
"net"
"runtime"
"syscall"
"time"
"unsafe"
)
const SF_SYNC = 0x00000004
const SF_NOCACHE = 0x00000010
func FreeBSDSendfile(outfd int, infd int, offset *int64, count int, flags int) (written int, err error) {
var writtenOut uint64 = 0
_, _, e1 := syscall.Syscall9(syscall.SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), uintptr(flags), 0, 0)
written = int(writtenOut)
if e1 != 0 {
err = e1
}
return
}
func Msync(mem []byte, flags int) error {
_, _, errno := syscall.RawSyscall6(
syscall.SYS_MSYNC,
uintptr(unsafe.Pointer(&mem[0])),
uintptr(len(mem)),
uintptr(flags),
0, 0, 0)
if errno != 0 {
return errno
}
return nil
}
func p(e error) {
if e != nil {
panic(e)
}
}
func main() {
var (
dstStr string
ttl int
tmpFilePath string
)
flag.StringVar(&dstStr, "dst", "9.9.9.10:443", "")
flag.IntVar(&ttl, "ttl", 10, "")
flag.StringVar(&tmpFilePath, "path", "/tmp/sendfile-test1.txt", "")
flag.Parse()
dst, err := net.ResolveTCPAddr("tcp", dstStr)
p(err)
isIPv6 := dst.IP.To4() == nil
conn, err := net.DialTCP("tcp", nil, dst)
p(err)
defer conn.Close()
raw, _ := conn.SyscallConn()
var sockFD int
raw.Control(func(t uintptr) {
sockFD = int(t)
})
if isIPv6 {
syscall.SetsockoptInt(sockFD, syscall.IPPROTO_IPV6, syscall.IPV6_UNICAST_HOPS, ttl)
} else {
syscall.SetsockoptInt(sockFD, syscall.IPPROTO_IP, syscall.IP_TTL, ttl)
}
fileFD, err := syscall.Open(tmpFilePath, syscall.O_CREAT|syscall.O_RDWR|syscall.O_SYNC, 0o600)
p(err)
defer func() {
syscall.Close(fileFD)
syscall.Unlink(tmpFilePath)
}()
err = syscall.Ftruncate(fileFD, 4)
p(err)
firstSegment, err := syscall.Mmap(fileFD, 0, 4, syscall.PROT_WRITE, syscall.MAP_SHARED)
p(err)
defer syscall.Munmap(firstSegment)
copy(firstSegment, []byte("haha"))
var n int64
fmt.Printf("GOOS: %s\n", runtime.GOOS)
if runtime.GOOS == "freebsd" {
_, err = FreeBSDSendfile(sockFD, fileFD, &n, 4, SF_NOCACHE)
} else {
_, err = syscall.Sendfile(sockFD, fileFD, &n, 4)
}
p(err)
copy(firstSegment, []byte("1234"))
err = Msync(firstSegment, syscall.MS_SYNC)
p(err)
time.Sleep(100 * time.Microsecond)
if isIPv6 {
syscall.SetsockoptInt(sockFD, syscall.IPPROTO_IPV6, syscall.IPV6_UNICAST_HOPS, 64)
} else {
syscall.SetsockoptInt(sockFD, syscall.IPPROTO_IP, syscall.IP_TTL, 64)
}
_, err = conn.Write([]byte("567\n"))
time.Sleep(4 * time.Second)
}
fix-syscall9.patch:
--- a/freebsd-test.go
+++ b/freebsd-test.go
@@ -13,7 +13,7 @@
const SF_SYNC = 0x00000004
const SF_NOCACHE = 0x00000010
-func FreeBSDSendfile(outfd int, infd int, offset *int64, count int, flags int) (written int, err error) {
+/*func FreeBSDSendfile(outfd int, infd int, offset *int64, count int, flags int) (written int, err error) {
var writtenOut uint64 = 0
_, _, e1 := syscall.Syscall9(syscall.SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), uintptr(flags), 0, 0)
@@ -23,7 +23,7 @@
err = e1
}
return
-}
+}*/
func Msync(mem []byte, flags int) error {
_, _, errno := syscall.RawSyscall6(
syscall.SYS_MSYNC,
@@ -85,7 +85,7 @@
var n int64
fmt.Printf("GOOS: %s\n", runtime.GOOS)
if runtime.GOOS == "freebsd" {
- _, err = FreeBSDSendfile(sockFD, fileFD, &n, 4, SF_NOCACHE)
+ //_, err = FreeBSDSendfile(sockFD, fileFD, &n, 4, SF_NOCACHE)
} else {
_, err = syscall.Sendfile(sockFD, fileFD, &n, 4)
}
GOOS=freebsd go build freebsd-test.go
patch -p 1 < fix-syscall9.patch
GOOS=linux go build -o linux-test freebsd-test.go
I only tested sendfile()
on FreeBSD-14.2-RELEASE-amd64-bootonly.iso .
I wrote similar code, but it works for me on FreeBSD 14.1 (however, i’m testing in virtualbox). Can you check this?
I have tested fbsd_sf branch, still not working for me. My Configuration:
GUI frontend: virt-manager
hypervisor: KVM
emulator: QEMU-system
network: default
virsh net-dumpxml default
:
<network connections='1'>
<name>default</name>
<uuid>5f1aaee0-c200-5a54-9b03-40d2a96c69a5</uuid>
<forward mode='nat'>
<nat ipv6='yes'>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='66:3c:4a:64:ef:d8'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
<ip family='ipv6' address='fdf3:a26d:a7d0:3f82::1' prefix='64'>
</ip>
</network>
Кто-нибудь может подсказать конфиг для yt music? Текущий конфиг, на котором youtube работает в yt music не может самое главное - воспроизводить музыку, интерфейс и прочий функционал грузится.
Флаги командой строки:
s1 -q1 -Y -Ar -s5 -o1+s -At -f-1 -r1+s -As -s1 -o1 +s -s-1 -An
разные провайдеры, разные настройки тспу, у других будет работать конфиг который у вас не будет и наоборот, подбирайте сами прочитав расшифровку ключей
Объясните пожалуйста что за режим --transparent
что значит сокс не будет использоваться?
Это для заворота соединений на прогу через фаервол. ip/nf tables для linux.
Дальше прога получает адрес назначения из метаданных ОС, вместо того, чтобы клиент явно сообщил куда ему нужно через сокс протокол.
Для клиента все прозрачно, прокси прописывать не надо
Если простыми словами это только в Линукс работает? И прописывать ip и порт не придется в браузере?
вроде на Android тоже, если root-права есть
Придется прописывать много чего в nftables, это точно не для нубов режим.
@hufrea, а что означает новая недокументированная опция –copy? Поглядел код - ничего не понял. Но очень интересно)))
Она копирует параметры из указанной группы:
--fake-sni g.co --fake -1 --ttl 64 --md5sig -At --split 2 --fake-offset 2 --copy 1
==
--fake-sni g.co --fake -1 --ttl 64 --md5sig -At --split 2 --fake-offset 2 --fake-sni g.co --fake -1 --ttl 64 --md5sig
Опция удобная (для меня), но делают команду немного запутанной. Она не очень продумана, поэтому и скрыта.