Está bem.
Se você quiser usar o Frida sem ter privilégios de root, precisaremos injetar o gadget do Frida em nosso aplicativo
existente.
O aplicativo que queremos analisar, embora tenhamos o Frida em nosso aplicativo existente, podemos simplesmente usar o Frida
como se estivéssemos em um dispositivo com root.
E é isso.
Isso é muito legal.
Se você não quiser ignorar algumas detecções de root realmente difíceis e quiser apenas observar partes
do código do aplicativo, isso será muito útil.
Então, vamos dar uma olhada em como isso está sendo feito.
Se quisermos injetar a biblioteca Frida em um aplicativo existente, primeiro teremos que descobrir como a
biblioteca está sendo chamada e, portanto, teremos que dar uma olhada em nosso famoso aplicativo do banco Space.
Então, entramos em aplicativos, Space, Pang e aqui estamos abertos.
Agora, esse aplicativo com JDBC, a propósito, caso você não tenha atualizado durante este curso, acho que agora
é o momento perfeito para fazê-lo.
Para isso, basta acessar o nosso diretório e usar o git pull para obter as informações mais recentes
do repositório.
No meu caso, podemos ver que ele já está atualizado depois de buscar as informações mais recentes, precisamos
reconstruir o JDBC e isso pode ser feito com o gradle e simplesmente listar.
Está bem.
Agora o JDK está sendo reconstruído e temos a versão mais atualizada.
Vamos voltar ao painel de espaço do diretório de aplicativos.
Vamos carregar esse aplicativo com o jQuery porque ele está usando uma biblioteca.
Vejamos, vamos rolar a tela para baixo.
Dentro dos recursos.
Podemos ver, sim, que temos esse diretório lib e que esse diretório lib agora tem arquiteturas
diferentes, x86 armv7 e também arm.
Podemos ver que essa é a biblioteca que o aplicativo está usando.
Por isso, ele é chamado de lib dot.
Portanto, o que queremos fazer é baixar o Typekit gratuito incluído nesse diretório lib aqui
e carregá-lo em nosso aplicativo existente para observar métodos, memória e tudo o mais.
Então, para isso, vamos descobrir como essa biblioteca está sendo carregada, porque ela deve ser absolutamente
a mesma para a nossa biblioteca 3D depois.
Vamos ver se conseguimos encontrar essa parte.
E, para isso, vamos procurar a biblioteca Cdks.
Então vamos ver.
Deixe.
Sim, temos algumas coisas, mas isso não está relacionado ao carregamento da biblioteca.
Vamos procurar por tDCS.
Está bem.
Infelizmente, temos isso no nome da classe, portanto, obtemos muitos resultados.
Vamos procurar a biblioteca.
Perfeito.
Este é exatamente o que estamos procurando.
Biblioteca de carregamento de pontos do sistema.
Vejamos.
Está bem.
Esta é a parte em que a biblioteca está sendo carregada e podemos ver algumas delas.
Sim, já há algumas coisas interessantes.
A primeira coisa é que o nome não se aplica a essa parte.
Aqui na plataforma Android, temos esse prefixo lib na frente da biblioteca.
Portanto, se estivermos usando o Frida, precisaremos nomeá-lo Lib Frida.
E, claro, isso.
Sim.
A extensão.
Portanto, isso não está sendo exigido aqui.
Certo, então esse é o parâmetro.
Vamos descobrir como é o código do smiley.
Mas, quero dizer, nós já temos um pressentimento.
Quero dizer, já podemos supor como ele se parece, pois podemos ver que não temos nenhuma instância
do sistema.
Portanto, ele precisa estar em um método estático.
Então, temos o sistema, depois nosso método estático carrega a biblioteca e, em seguida, temos o parâmetro
de string e estamos retornando void porque esse, o resultado não está sendo usado aqui e é isso.
No entanto, vamos resolver isso rapidamente.
E a maneira mais fácil é simplesmente ir até a seção de sorrisos aqui.
E então vamos ver.
Sim, já está no início.
Não se distraia porque ele está no final do nosso código Java aqui.
Ele está sendo carregado no construtor para que possamos ver que estamos criando uma nova cadeia de caracteres no OU para o registro zero
e a cadeia de caracteres é denominada X.
Está bem.
Depois, temos que invocar a estática.
O Invoke static está sendo chamado com esse parâmetro V0 e, então, podemos ver que esse é o nosso sistema.
E então temos essa biblioteca de carregamento de pontos.
E então temos nosso parâmetro, que é string, que é V zero, e então podemos ver o tipo de retorno
void.
Tudo bem.
Isso é tudo o que precisamos fazer.
Precisamos pegar esse trecho de código e colocá-lo em.
Sim, na rotina de carregamento em que queremos carregar nosso gadget gratuito.
Quero dizer, já podemos carregá-la aqui, mas eu gostaria de mostrar um lugar melhor, mas
é como um lugar onde você sempre pode carregar sua biblioteca gratuita, porque
isso é antes de o aplicativo ser iniciado.
Certo, então onde está esse ponto?
Vamos dar uma olhada no manifesto do Android.
Porque se você quiser usar o 3D o mais cedo possível, por que não usá-lo na classe do iniciador?
Portanto, a primeira classe que está sendo iniciada ao abrir esse aplicativo é esse lançador do Android.
Certo, vamos clicar duas vezes nisso.
Esse é o código em que queremos injetar nosso gadget 3D.
Portanto, mesmo antes do método Oncreate, antes de a atividade ser criada, queremos iniciar nosso servidor
3D.
Ok, vamos dar uma olhada na parte somali.
Portanto, a melhor parte, na minha opinião, seria o construtor.
Aqui mesmo, eu acho.
Aqui não podemos escrever.
Sim, temos que descompilar e depois reconstruir.
Mas é exatamente nesse local que vamos colar nosso código de gadget 3D.
Então, vamos descompilar esse aplicativo e fazer isso.
Primeiro, vamos manter isso aberto, porque assim podemos, sim, encontrar essa classe com muito mais facilidade.
Portanto, abs space PNG.
Estamos usando a ferramenta APK para decodificar esse aplicativo.
Porque então temos os arquivos Smiley.
Então vamos ver.
Sim, agora temos os arquivos Mali e estamos procurando a classe.
Vejamos.
Está bem.
O e f big space pang android.
E aqui deve estar um lançador para Android.
Perfeito.
Vamos abrir isso com o código do Visual Studio.
Certo, vamos selecionar Java e ver, este é o construtor.
E sim, ele está usando apenas esse registro bruto.
Não nos importamos com isso porque estamos usando V0, então vamos criar V0.
Ok, vamos alinhar isso.
Também estamos definindo os locais como um porque estamos tendo o zero.
Mas acho que funcionaria de qualquer maneira.
E tudo o que precisamos fazer é substituir isso agora pelo nosso código de biblioteca 3D.
Então, vamos baixar a biblioteca gratuita e ver como ela está sendo nomeada.
Para isso, basta pesquisar gratuitamente no GitHub.
Usamos esse projeto.
Sim, esse é o original.
Está bem.
Agora precisamos descobrir qual é a nossa versão 3D, pois a biblioteca precisa estar na mesma versão.
É claro que também podemos atualizar o Frida, o que pode ser sensato neste momento, e simplesmente usar a versão mais atualizada.
Mas também podemos escolher o gadget 3D para essa versão.
Vamos escolher essa e ver se dá certo.
Está bem.
Portanto.
Temos que rolar a tela um pouco para baixo.
Acho que se clicarmos aqui.
Sim.
Em seguida, podemos ver este link aqui, que é a versão.
Portanto, podemos simplesmente contornar isso.
Portanto, a versão era 15 zero oito.
Então, vamos para 15 zero oito.
Perfeito.
Funciona.
E agora, vamos ver.
Deveria haver algo como o Gadget.
Sim.
Essa é a nossa biblioteca, que pode ser injetada nesse aplicativo.
Portanto, precisamos ter certeza de que estamos escolhendo a plataforma correta.
Nesse caso, estamos usando.
Estamos executando isso em um dispositivo real.
Portanto, estamos usando a arquitetura ARM, caso queira usá-la em sua máquina virtual, você
precisará da x86.
E se você tiver um smartphone de 64 bits, precisará usar essa parte.
Está bem?
No meu caso, estou usando um smartphone, um dispositivo Android de 32 bits.
Portanto, estamos usando essa parte.
Está bem.
E vamos extrair isso.
Muito bem, aqui está ele agora.
Vou renomear isso e agora precisamos ter esse prefixo lib e, em seguida, chamaremos
esse gadget de Frida Dash.
Portanto, essa biblioteca precisa agora ser incluída em nosso aplicativo.
E vamos voltar.
Este é o aplicativo descompilado.
Aqui está o código do Smiley.
Vamos abri-lo aqui.
Agora temos esse diretório lib e o estamos colocando, digamos, aqui e aqui também.
Agora, temos suporte para a arquitetura ARM.
E o que precisamos fazer agora é simplesmente chamar essa biblioteca por esse nome.
Então, vamos copiar isso.
E agora não vamos ter filhos.
Estamos tendo um problema com o leitor labial, labial.
É apenas um prefixo que precisa ser removido e pronto.
É assim que você pode compilar o Frida em um aplicativo existente e executá-lo sem ter privilégios de root.
Muito legal, não é?
Vamos descobrir se isso realmente funciona.
Portanto, agora precisamos reconstruir esse aplicativo.
Ou seja, temos que verificar V0, mas aqui estamos retornando para não substituir e registrar antes.
E mesmo que esteja sendo usado posteriormente, ele simplesmente será substituído.
Portanto, esse trecho de código deve se encaixar, creio eu, em 99% das vezes no construtor da primeira atividade que está sendo
iniciada.
É por isso que quero tê-lo aqui e ele também está sendo chamado muito cedo.
Assim, podemos aplicar nossos hooks antes do início do aplicativo original.
Certo, então vamos reconstruir esse aplicativo e ver se ele realmente funciona.
Então, onde estamos aqui?
Ok, uma ferramenta apk de volta será.
Ok, ainda é 2. 5, portanto, talvez seja aconselhável atualizar também essa parte.
Vou encerrar isso rapidamente.
Está bem.
Também podemos verificar rapidamente com.
Bem, vamos encerrar o assunto.
Não quero salvar isso.
Está bem.
Então vamos ver.
Agora, criamos esse novo aplicativo.
É isso aí.
Vamos primeiro assiná-lo na tirolesa.
Está bem.
E agora vamos abrir o apk.
Portanto, agora isso deve ter a biblioteca de carregamento do sistema para o nosso gadget 3D.
Primeiro, vamos nos certificar de que o gadget 3D está sendo incluído na LIB.
Sim.
Perfeito.
Nós o temos aqui.
Está bem.
Quero dizer, também aqui e agora.
Vejamos.
Ele estava dentro da classe do lançador do Android, portanto, também podemos usá-lo no manifesto do Android.
E aqui podemos ver a biblioteca perfeita de carga do sistema, o gadget.
Portanto, esse código parece bom.
E, se não tivermos cometido nenhum erro com relação à convenção de nomenclatura, isso deverá funcionar agora mesmo.
Oh, não, não deveria.
Eu me esqueci de algo, mas primeiro vamos ver como podemos descobrir isso por nós mesmos.
Então vamos ver.
Oh, nós fechamos isso.
Agora, vamos conectar o smartphone.
Vamos iniciar o aplicativo da caneta espacial.
E agora vamos tentar nos conectar ao nosso servidor gratuito para que possamos nos conectar a ele por meio do Frida
Dash U e, em seguida, do Gadget.
Certo, estamos recebendo um erro.
Portanto, o erro é que esse processo não foi encontrado.
O que eu esqueci foi o seguinte.
Se você voltar.
Dentro do androidmanifest. xml não estamos tendo a permissão da Internet, portanto, estamos apenas
fazendo a permissão vibrar.
Quero dizer, deixe-me encerrar isso rapidamente.
Vamos ampliar isso um pouco.
Ok, vamos continuar assim.
Portanto, queremos nos comunicar pela rede com o gadget 3D e, por isso, precisamos ter essa permissão de Internet.
Portanto, essa é uma permissão obrigatória se você quiser usar o Frida.
Quero dizer, acho que não está relacionado ao Frida Gadget.
Está relacionado à própria Frida.
Portanto, vamos adicionar também essa permissão e, então, estaremos prontos para começar.
Portanto, se tivermos a permissão de Internet e carregarmos nosso gadget Frida no aplicativo, poderemos
nos conectar a ele.
E sim, brinque com isso.
Vejamos.
Está bem.
Precisamos reconstruí-la, é claro.
Então, o apktool será.
E então vamos remover os fragmentos antigos.
Está bem.
E agora vamos usar um assinador de aplicativo de tirolesa.
Vamos instalar esse aplicativo.
Hum, sim.
Eu cometi um erro de digitação.
Instalação do ADB.
Vejamos.
Está bem.
Talvez eu tenha cometido um erro de digitação.
Pronto, agora já o temos.
Vamos abrir a tela.
Cópia.
Vamos colocar isso à esquerda.
Muito bem, vamos começar.
Caneta espacial.
E podemos ver que isso é bom.
Quero dizer, temos uma tela preta e normalmente nos assustaríamos com: "Oh, o que está acontecendo aqui?
Mas agora essa é a nossa biblioteca 3D, que está aguardando a nossa conexão.
Portanto, parece funcionar.
Vejamos, Frida Dash, você tem o chat e a perfeição.
Estamos conectados a esse servidor Frida no momento e ele é executado em um dispositivo sem raiz.
Ou seja, agora temos esse aplicativo e, se instalarmos esse aplicativo em um dispositivo
sem raiz, ainda poderemos usar o Frida.
Então, vamos usar nossos bons truques.
Já fizemos isso nos últimos vídeos e verificamos se eles realmente funcionam.
Então vamos ver.
Aqui eu tenho alguns scripts.
Vamos começar com o script invisível e vamos pegar esta parte.
Está bem.
Vamos inseri-lo aqui e iniciar o jogo.
Vejamos.
Está bem.
Não funcionou.
Por quê?
Oh, essa foi por pouco.
Hum, não funcionou porque a instância não foi encontrada antes.
Podemos ver que a instância do jogador não foi criada antes.
Portanto, a parte invisível.
Um.
Sim.
Simplesmente não funcionou porque a instância não foi encontrada.
Agora temos a instância em que estamos no jogo.
Vamos executar o mesmo script mais uma vez.
Três, dois, um.
Perfeito.
Podemos ver agora que funciona.
Sim.
Portanto, agora somos invisíveis.
Quero dizer, não somos invisíveis, mas invisíveis.
Também podemos ver que já brincamos com a pontuação máxima antes.
Vamos ver se podemos tornar isso ainda melhor.
Sim, esse era o mesmo roteiro.
Vamos acrescentar um zero.
Está bem.
Três, dois, um.
Sim.
Perfeito.
Podemos ver que a pontuação máxima aumentou.
Está bem.
Portanto, podemos ver que nossos scripts ainda estão funcionando e que esse aplicativo agora pode ser instalado
e observado em um dispositivo sem raiz, o que é muito bom, certo?
Com certeza.
Então, vamos fazer uma rápida recapitulação desses slides e agora você está bem preparado para usar o Freedup
sem ter privilégios de root.
Vamos fazer isso.
Tudo bem.
Vamos recapitular um pouco.
Então, se você quiser usar o Freedup sem ter privilégios de root, quais são essas etapas?
A primeira etapa é simplesmente descompilar o aplicativo e fazer o download da biblioteca
de gadgets gratuita para a arquitetura correspondente. Caso esteja usando uma máquina virtual, precisamos ter a versão
x86, caso esteja usando um smartphone, precisamos ter a versão arm.
Depois de fazer o download e descompilar o aplicativo, precisamos colocar essa biblioteca no diretório lib.
Precisamos ter certeza de que estamos usando esse prefixo lib na frente e, é claro, a extensão.
Portanto.
Se o aplicativo não tiver um diretório lib, basta criar um.
Isso deve funcionar bem depois de colocarmos essa biblioteca em nosso diretório lib.
Precisamos carregar esse código em nosso aplicativo.
Portanto, estamos procurando a atividade de lançamento no androidmanifest. xml.
No modo de inicialização do construtor, inserimos nosso código para iniciar nossa biblioteca de gadgets 3D.
A biblioteca do sistema.
Depois disso, precisamos nos certificar de que também adicionamos a permissão de Internet e a reconstruímos.
E estamos prontos para começar.
Isso é tudo para inserir o gadget 3D em um aplicativo existente e usá-lo sem ter privilégios de root.
Isso é tudo para este vídeo.
Em caso de dúvidas, sinta-se à vontade para entrar em contato comigo, caso contrário, divirta-se muito.