zapret icon indicating copy to clipboard operation
zapret copied to clipboard

Не работает на MacOS (M1)

Open MickLib opened this issue 11 months ago • 36 comments

error: unknown target CPU 'apple-m1'

MickLib avatar Jan 24 '25 19:01 MickLib

Это в каком случае вылезает ? Пробовали запускать бинари из binaries/mac64 ? Они собираются как сдвоенные (x86_64+aarch64), но мне не на чем проверять arm часть

В любом случае достаточно легко самому собрать make -C /opt/zapret mac Система сама должна подтянуть компилятор. Ничего устанавливать не надо

bol-van avatar Jan 24 '25 20:01 bol-van

Это при выполнении скрипта install_easy.sh А какие именно бинарнники запускать, их там 3?

MickLib avatar Jan 24 '25 20:01 MickLib

Любые tpws без параметров

bol-van avatar Jan 25 '25 17:01 bol-van

Спасибо, разобрался Правда кажется не помогает с дискордом. Ютуб тоже не работает к сожалению

MickLib avatar Jan 25 '25 17:01 MickLib

У меня эта ошибка возникла, когда MacOS заблокировала запуск ip2net и прочего. Давал разрешения через Privacy & Security, потом запустил install_easy.sh из /opt/zapret, в который он себя сам скопировал. HTTP/HTTPS заработали, ~~UDP - нет~~ (и не должен был).

theincorrect avatar Jan 25 '25 18:01 theincorrect

Я не знаток макоси, но логично было предположить, что с введением ARM архитектуры они постараются закрутить требования к подписи. Как их отключать сами ищите

Есть ли на MacOS для ARM требования на подпись исполняемых файлов ? ChatGPT сказал: ChatGPT

Да, в macOS для ARM (Apple Silicon) есть требования на подпись исполняемых файлов, такие как и на других архитектурах (например, x86_64). Это часть системы безопасности macOS, известной как Gatekeeper.

Основные моменты:

Подпись кода (Code Signing): Это обязательное требование для большинства приложений и исполняемых файлов на macOS. Программы должны быть подписаны действительным сертификатом, выданным Apple, для того чтобы они могли быть запущены без дополнительных предупреждений о безопасности.

Gatekeeper: Этот механизм проверяет подпись кода перед запуском приложения. Приложения, не подписанные или подписанные недействительным сертификатом, могут быть заблокированы, если настройки безопасности системы разрешают только проверенные приложения.

Notarization: В дополнение к подписи кода, с 2019 года Apple ввела процесс notarization. Это дополнительная проверка, при которой приложение, даже если оно подписано, отправляется в Apple для анализа на наличие вредоносного ПО. Это стало обязательным для распространения приложений вне Mac App Store.

Таким образом, если вы собираете исполняемые файлы для macOS, включая приложения для ARM-архитектуры, вам нужно будет их подписывать и, возможно, пройти процесс notarization, если вы хотите, чтобы они корректно запускались на системах пользователей без дополнительных ошибок или предупреждений безопасности.системах пользователей без дополнительных ошибок или предупреждений безопасности.

bol-van avatar Jan 26 '25 07:01 bol-van

Кое-где пишут, что надо для arm подписывать self-signed. Может кто-нибудь прояснить этот вопрос имеет ли смысл подписывать self-signed, влияет ли это на что-то, упрощает ли ? Подписывает ли brew executables ? Может есть какие-то локации, откуда проверки нет. Например, /usr/local/bin ?

bol-van avatar Jan 26 '25 08:01 bol-van

Кое-где пишут, что надо для arm подписывать self-signed. Может кто-нибудь прояснить этот вопрос имеет ли смысл подписывать self-signed, влияет ли это на что-то, упрощает ли ? Подписывает ли brew executables ? Может есть какие-то локации, откуда проверки нет. Например, /usr/local/bin ?

  1. Разве на макос работает запрет, байдпи и т.п.? Там же проблема была какая-то с устаревшей версией FreeBSD
  2. Можно запускать не подписанные бинари после снятия их с карантина
xattr -d com.apple.quarantine zapret.dmg

doroved avatar Feb 01 '25 17:02 doroved

Работает только с tpws, dvtws не работает по причине выпиливания ipdivert

bol-van avatar Feb 01 '25 17:02 bol-van

dvtws не работает по причине выпиливания ipdivert

Не изучал NetworkExtension, можно ли там модифицировать сетевые пакеты?

Image

doroved avatar Feb 01 '25 17:02 doroved

Подскажите, получилось ли в итоге обойти блокировку Discord для MacOC M1? Или даже пытаться не стоит К сожалению, использование любых прокси или впн сильно урезает скорость и стабильность сети + большая задержка

auuoouo avatar Feb 02 '25 07:02 auuoouo

Не изучал NetworkExtension, можно ли там модифицировать сетевые пакеты?

Быстренько посмотрел. Сложное API. Решает несколько иные задачи. Разделение на разные процессы разного уровня sandbox. Обьектно-ориентированный язык.

Все это похоже на один большой гемор натягивания совы на глобус

bol-van avatar Feb 02 '25 08:02 bol-van

Чтобы безболезненно поднять pktws мне нужен хэндлер, на который сыпятся пакеты уровня L3, а на выходе я решаю дропать их или пропускать. that's all. Мой процесс должен мочь слать raw пакеты уровня L3 (не L2 ! конструирование L2 это тоже большой гемор и несовместимости). С этим на BSD тоже есть проблемы немаленькие, вероятно наследованные darwin, так что я использую тот же ipdivert и для raw отсылки. Но как раз это и убрали

bol-van avatar Feb 02 '25 08:02 bol-van

@bol-van

Все это похоже на один большой гемор натягивания совы на глобус

Дааа, проще ведь виндивертом хватать все подряд, лезть в пакеты и пытаться узнать домен сайта. Тут главное ECH не забыть включить, чтобы точно всё сработало.

С этим на BSD тоже есть проблемы немаленькие, вероятно наследованные darwin

Через набор утилит унаследовала, не иначе.

на который сыпятся пакеты уровня L3

Всё просто - не нужно искать "лёгкие" пути. Завтра в окнах отзовут подпись виндиверта. И что теперь, будем через тестовый режим сидеть?

То, что "линукс" поддерживает всякую небезопасную хрень, не означает что это норма и это нужно использовать. Наоборот, это нужно избегать. Не нужно пытаться использовать говно из "линукса" в сборках для других систем. И ради бога, не нужно использовать уродство под названием mingw.

isoviet avatar Mar 15 '25 20:03 isoviet

Ну так берите и пишите раз такой умный

bol-van avatar Mar 16 '25 05:03 bol-van

Ну так берите и пишите раз такой умный

Я УЖЕ написал. И не увидел ничего сложного ни в винапи, ни в перехвате днс.

isoviet avatar Mar 16 '25 11:03 isoviet

Мне тут уже пишут, подсказывают, что api, которое используется запретом на линуксе, уже deprecated. Карета в тыкву...

isoviet avatar Mar 16 '25 11:03 isoviet

NFQUEUE не deprecated. deprecated только старые функции для работы с ним из libnetfilter_queue. Это касается только user-mode интерфейса, kernel интерфейс не поменялся. Теоретически может перестать собираться с новыми версиями libnetfilter_queue, но со старыми будет работать. И переписать не так и сложно, суть то не меняется.

В BSD ipdivert - не deprecated.

А если вам хочется мучаться на уровне L2 - то пишите это сами. Я не хочу. Потому что там надо учитывать особенности разных типов адаптеров, мак адреса, самому разгребать таблицы роутинга и прочее. то, что должна делать ОС, а не изобретать велосипед. И потом ловить массу репортов почему у меня не завелось на таком-то адаптере, при таких-то условиях, на новой версии ядра

И если хочется переписать виндиверт, подписать его от юридического лица за тыщи баксов, тоже - вперед !

bol-van avatar Mar 16 '25 11:03 bol-van

Ну так берите и пишите раз такой умный

Я УЖЕ написал. И не увидел ничего сложного ни в винапи, ни в перехвате днс.

помоги работяге, я просто хочу нормально пользоваться дискордом, сможешь поделиться со мной?

auuoouo avatar Mar 16 '25 13:03 auuoouo

Самое конструтивное, что может сделать этот товарищ, это или сделать свое собственное решение, или если он хочет помочь с zapret, написать код, реализующий очередь пакетов с возможными дропами и raw отсылку какими-то другими более совершенными методами. Если знает как. Если это будет хорошо работать, я добавлю в проект

bol-van avatar Mar 16 '25 14:03 bol-van

Я УЖЕ написал.

Забыл ссылку на репу дать

doroved avatar Mar 16 '25 14:03 doroved

Забыл ссылку на репу дать

помоги работяге, я просто хочу нормально пользоваться дискордом, сможешь поделиться со мной?

Дам, когда Apple обновит свою пиратскую копию FreeBSD.

Там же проблема была какая-то с устаревшей версией FreeBSD

Шутка) На самом деле у нас проприетарная тусовка.

на уровне L2

Первая же ссылка в гугле обещает возможность потрогать IP пакеты: https://git.zx2c4.com/wintun/about/

Если меня не обманывают, то для макоси есть некий "utun".

Я бы даже на mingw согласился, ей богу, только бы никаких дивертов не было. Ими ты убиваешь даже теоретическую возможность портировать все это дело на мобилы.

isoviet avatar Mar 17 '25 12:03 isoviet

чтобы что-то дернуть в tun, нужно делать прослойку псевдо-VPN меняется конфигурация сетевых интерфейсов, рероутится трафик и все , абсолютно все идет через этот tun что создает тормоза и все так же тянет за собой 3rdparty драйвера ядра

мне бы не понравилось, если бы какая-то софтина лезла бы в мои интерфейсы, что-то добавляла туда. это тяжелое вмешательство в систему, совршенно в данном случае не оправданное а windivert делает точечно как раз то, что нужно то, что сделано в linux или BSD изначально

bol-van avatar Mar 17 '25 13:03 bol-van

и все так же тянет за собой 3rdparty драйвера ядра

Только для окон.

что создает тормоза

это тяжелое вмешательство в систему

Сомневаюсь.

Тут автору нужно для себя решить: 1) залочиться на диверты; 2) терпеть попаболь с поддерживанием 100500 способов перехвата пакетов; 3) выбрать что-то одно, что работает везде (это не диверты).

Если бы я был автором, я бы выбрал третий вариант. Аргументы про тормоза и непрозрачность для меня выглядят надуманными. Но я не автор, поэтому я могу лишь ждать и наблюдать.

isoviet avatar Mar 17 '25 14:03 isoviet

У меня нет проблем с перехватом пакетов. Текущее решение считаю оптимальным, есть только проблема с macos

bol-van avatar Mar 17 '25 14:03 bol-van

у меня проблемы с установкой на макос на м1 "полечились" снятием флага карантина с файлов в /binaries/mac64

команды типа (я на самом деле использовал абсолютный путь, но тут для наглядности так):

xattr -d com.apple.quarantine ./binaries/mac64/ip2net
xattr -d com.apple.quarantine ./binaries/mac64/mdig
xattr -d com.apple.quarantine ./binaries/mac64/tpws

после этого easy install не ругался на apple-m1

может быть имеет смысл добавить в сетап? для apple-silicon архитектур как минимум?

deksden avatar Mar 31 '25 20:03 deksden

если грамотно отладите - добавлю мне не на чем

код должен распознавать архитектуру

bol-van avatar Apr 01 '25 04:04 bol-van

если грамотно отладите - добавлю мне не на чем

код должен распознавать архитектуру

на макос же не работает запрет, байдпи, о чем речь идет?

doroved avatar Apr 01 '25 04:04 doroved

tpws работает

bol-van avatar Apr 01 '25 05:04 bol-van

у меня проблемы с установкой на макос на м1 "полечились" снятием флага карантина с файлов в /binaries/mac64 после этого easy install не ругался на apple-m1

ты можешь помочь мне с установкой? если это лечит дискорд мне это очень поможет, могу даже заплатить

auuoouo avatar Apr 01 '25 06:04 auuoouo