Uma implementação hacky do protocolo de compartilhamento de senha Wi-Fi da Apple para MacOS.
Uma implementação somente para Linux no Python está disponível aqui.
Este projeto contém software experimental e é o resultado de esforços de engenharia reversa pelo projeto de link sem fio aberto. O código serve apenas para fins documentais e educacionais. É não testado e incompleto . Este projeto não é afiliado ou endossado pela Apple Inc.
Instale libsodium
, por exemplo, via homebrew:
brew install libsodium
Fornecemos as funções do concedente e do solicitante. Você pode usar o aplicativo Xcode ou make
para criar o projeto.
Execute o PWS-Grantor
de destino para iniciar um cliente de compartilhamento de senha, que dará anúncios de dispositivos, que examinará os anúncios e se conectará à primeira correspondência e começará a compartilhar. Como alternativa, quando construído via make
:
build/DerivedData/Build/Products/Debug/PWS-Grantor < ssid > < psk >
A função de solicitante requer uma configuração especial devido a restrições de segurança e Bluetooth do macOS.
Etapa 1: precisamos desativar o recurso de segurança da AMFI para acessar o certificado de ID do Apple do usuário, conforme descrito aqui. Reinicie no modo de recuperação (⌘+r) e execute:
csrutil disable
nvram boot-args= " amfi_get_out_of_my_way=0x1 "
Etapa 2: Como não podemos definir os dados do fabricante de um anúncio BLE com CoreBluetooth
, fornecemos um servidor de retransmissão GATT no python-gatt-relay
. Configure o relé em uma máquina Linux externa, por exemplo, um Raspberry Pi 4. Veja o README
incluído para obter detalhes.
Etapa 3: Finalmente, execute o alvo PWS-Requestor
para solicitar uma senha de outro dispositivo. Como alternativa, quando construído via make
:
build/DerivedData/Build/Products/Debug/PWS-Requestor < appleID > < gattServerAddress >