
Um kit de ferramentas de análise de aplicativos móveis em tempo de execução com uma interface web, alimentado por Frida, escrito em Python.
/ | \ ____ __ __ ______ ____
/ ~ \/ _ \| | \/ ___// __ \
\ Y ( <_> ) | /\___ \ ___/
\___|_ / \____/|____//____ >\___ >
\/ House \/ \/
Ferramenta Dinâmica de Análise Móvel
Contato: [email protected]
House: Um kit de ferramentas de análise de aplicativos móveis em tempo de execução com interface web, alimentado por Frida, escrito em Python. É projetado para ajudar na avaliação de aplicativos móveis através da implementação de hooking dinâmico de funções e interceptação, e tem como objetivo tornar a escrita de scripts Frida o mais simples possível.
git clone https://github.com/nccgroup/house
cd house
pip3 install -r requirements.txt
pip3 install pipenv
pipenv --python=/usr/bin/python3 install
pipenv --python=/usr/bin/python3 shell
python3 app.py <PORT>
# ou:
mkvirtualenv --python=/usr/local/bin/python3 house
workon house
pip install -r requirements.txt
python app.py <PORT>
# ou: (apenas para Mac OS)
git clone https://github.com/nccgroup/house
cd house
pip3 install -r requirements.txt
pip3 install pipenv
pipenv --python=/usr/local/bin/python3 install
pipenv --python=/usr/local/bin/python3 shell
python3 app.py <PORT>
Por padrão, House é vinculado a http://127.0.0.1:8000.
Para obter uma visão geral das capacidades do House, você pode visitar o manual do usuário para detalhes.


Nota: Certifique-se de atualizar sua versão do Frida para >= 12.8.3 para hooking de funções em /dex/jar
Nesta seção, um pequeno exemplo é fornecido para ilustrar o uso básico do House. O caso de demonstração é realizado contra um pequeno aplicativo Android de teste: com.ha0k3.overloads.
Certifique-se de que um dispositivo Android está conectado via USB e o servidor Frida está em execução no dispositivo. Verifique se o servidor Frida foi iniciado com sucesso usando o comando: frida-ps -U.
Inicie o aplicativo House executando app.py: python app.py <PORT>.
Abra um navegador e navegue até http://127.0.0.1:PORT.
Observe que as informações do dispositivo são exibidas na página; caso contrário, clique no botão Refresh ou reinicie o aplicativo e o servidor Frida.


sideload. Neste momento, suporta carregamento lateral do Stetho; o que facilita o exame da interface do usuário, armazenamento, etc.





Renderização de scripts e Rastreamento de Funções:

Hooks para funções em arquivos dex/jar carregados dinamicamente:

Opção de Mini Script:

Gerenciamento de scripts de histórico:

Através do House, os pesquisadores podem alterar dinamicamente os argumentos passados para as funções alvo e encaminhá-los.

Às vezes, o House não pode analisar perfeitamente as informações dos argumentos. Por exemplo, um argumento pode ter um tipo especial. No aplicativo de exemplo, foi implementada a função isLit que recebe um objeto personalizado como argumento. Para lidar com essas situações, o House fornece um simples "REPL". Os pesquisadores de segurança podem digitar dinamicamente scripts Frida no REPL e modificar o comportamento das funções.

Várias funções REPL são fornecidas pelo House para facilitar o teste:
inspectObject(obj) usa java.lang.reflect para inspecionar informações dos campos dentro de um objeto.setRetval(ret) recebe um parâmetro e tentará convertê-lo para o tipo de retorno correto usando o construtor do valor de retorno original.getStackTrace() imprimirá o stack trace.
Nota: Para hooking/interceptação de método construtor, insira $init como nome do método.
Para fazer o House funcionar, você precisará de:
Por favor, tente reiniciar tanto o servidor Frida quanto o House; se ainda assim não funcionar, abra uma issue.
Ocorre frequentemente quando vários dispositivos USB estão conectados; tente reiniciar o aplicativo alvo.
O House foi testado usando a versão 12.8.6 do Frida; pode haver alguns problemas com outras versões; também certifique-se de que o frida-python corresponde à versão do frida-server. Se ainda não funcionar, tente executar os scripts Frida gerados manualmente para ver se funcionam.
Agradecimentos especiais aos seguintes projetos de código aberto que inspiraram o House:
Se você tiver mais perguntas sobre o House, ou quiser ajudar a expandi-lo, sinta-se à vontade para entrar em contato:
Ou envie um e-mail para: Hao Ke