

macSubstrate é uma ferramenta de plataforma para injeção de código entre processos no macOS, com função similar ao Cydia Substrate no iOS. Usando o macSubstrate, você pode injetar seus plugins (.bundle ou .framework) em um aplicativo Mac (incluindo apps em sandbox) para modificá-lo em tempo de execução.
Tudo o que você precisa é obter ou criar plugins para o aplicativo alvo.
Sem problemas com modificação e assinatura de código do aplicativo original.
Nenhum trabalho adicional após a atualização do aplicativo alvo.
Super fácil de instalar ou desinstalar um plugin.
Carregamento automático de plugins sempre que o aplicativo alvo for reiniciado.
Oferecendo um aplicativo gráfico para tornar a injeção muito mais fácil.
A Proteção de Integridade do Sistema é uma nova política de segurança que se aplica a todo processo em execução, incluindo código privilegiado e código executado fora da sandbox. A política estende proteções adicionais a componentes em disco e em tempo de execução, permitindo que binários do sistema sejam modificados apenas pelo instalador do sistema e por atualizações de software. Injeção de código e anexos em tempo de execução em binários do sistema não são mais permitidos.
baixe o macSubstrate.app, coloque em /Applications e execute-o.

conceda autorização se necessário.
instale um plugin importando ou arrastando para o macSubstrate.

execute o aplicativo alvo.
o passo 3 e o passo 4 podem ser trocados
Depois que um plugin é instalado pelo macSubstrate, ele entra em vigor imediatamente. Mas se você quiser que ele funcione sempre que o aplicativo alvo for reiniciado ou o macOS for reiniciado, você precisa manter o macSubstrate em execução e permitir que ele seja iniciado automaticamente no login.
desinstale um plugin quando não precisar mais dele.

O macSubstrate suporta plugins do tipo .bundle ou .framework, então você só precisa criar um arquivo .bundle ou .framework válido. O mais importante é adicionar uma chave macSubstratePlugin no info.plist, com o valor de dicionário:
| Chave | Valor |
|---|---|
Por favor, verifique os plugins de demonstração demo.bundle e demo.framework para detalhes.
O macSubstrate também fornece Modelos do Xcode para ajudá-lo a criar plugins convenientemente:
ln -fhs ./macSubstratePluginTemplate ~/Library/Developer/Xcode/Templates/macSubstrate\ Plugin
Inicie o Xcode, e haverá 2 novos modelos de plugin para você.
Também crio um plugin para o WeChat:
Envia uma notificação quando você recebe uma mensagem de HongBao.
Envia uma notificação quando você recebe uma mensagem contendo palavras-chave personalizadas.
Anti-recall de mensagens e envia uma notificação.
Aceitamos pull requests dos seus próprios plugins para Plugins :)
O macSubstrate é distribuído sob a licença MIT. Veja LICENSE para detalhes.
O macSubstrate foi inspirado e criado com a ajuda dos seguintes projetos:
TargetAppBundleID |
o CFBundleIdentifier do aplicativo alvo, isso informa ao macSubstrate em qual aplicativo injetar. |
Description | descrição breve do plugin |
AuthorName | nome do autor do plugin |
AuthorEmail | email do autor do plugin |