LINUX.ORG.RU

tun2socks и syscall в openbsd

 , , ,


0

3

ув тов форумчане! в опенке пытаюсь собрать tun2socks - https://github.com/xjasonlyu/tun2socks - для tun mod’a xray (из коробки не реализован). естественно ничего не работает, тк тунельвноски утыкан сисколлами, как пофиксить - не знаю.

tun2socks:./tun2socks: undefined symbol 'syscall'
ld.so: tun2socks: lazy binding failed!
Killed 

контент анализ содержимого показал:

./dialer/dialer.go:     "syscall"
./dialer/dialer.go:             Control: func(network, address string, c syscall.RawConn) error {
./dialer/dialer.go:             Control: func(network, address string, c syscall.RawConn) error {
./dialer/sockopt_openbsd.go:    "syscall"
./dialer/sockopt_openbsd.go:func setSocketOptions(network, address string, c syscall.RawConn, opts *Options) (err error) {
./main.go:      "syscall"
./main.go:      signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)

буду благодарен как готовому решению так и пинку что посмотреть/почитать. советы достойной максимально минималистичной (не nekoray^_^)альтернативы для моей задачи приветсвуются!



Последнее исправление: xicetil296 (всего исправлений: 2)

Ты забыл тег «go» поставить, он тут определяющий. Видишь этот недоязык - сразу закрывай вкладку.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Ты забыл тег «go» поставить, он тут определяющий.

Мне кажется, ТСу без разницы, на каком языке реализовано решение.

А так да, по-видимому в Go повсеместно используется syscall(), и малой кровью это не исправить

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от annulen

Это проблемы не go, а бзди, а более вероятно опа, который через жопу всё ставит либо не обновляется годами по религиозным причинам

anonymous
()
Ответ на: комментарий от anonymous

Тео выпилил syscall нахрен, так как он сильно упрощает жизнь писателям малвари. Напоминает историю про хакера и солонку)

annulen ★★★★★
()
Ответ на: комментарий от xicetil296

Нужно обращаться к мейнтейнерам go в openbsd (если они существуют) или искать альтернативу без go.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Вообще мало где, OpenBSD’шники принесли в апстрим выпиливание syscall(). Он остался только там, где авторы конкретных программ его руками положили.

anonymous
()

Тебе надо понять откуда вызывается функция syscall() и заменить в этом месте вызов syscall() на нужный враппер из libc.

anonymous
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.