
Depurador programável para a máquina virtual Dalvik do Android que utiliza as interfaces JDWP/DDM para interceptar métodos, inspecionar o estado do processo e modificar o comportamento em tempo de execução sem código fonte.
AndBug é um depurador direcionado à máquina virtual Dalvik da plataforma Android, destinado a engenheiros reversos e desenvolvedores. Ele usa as mesmas interfaces do plugin de depuração do Eclipse do Android, o Java Debug Wire Protocol (JDWP) e o Dalvik Debug Monitor (DDM) para permitir que os usuários inspecionem métodos Dalvik, examinem o estado do processo e até mesmo realizem alterações.
Diferentemente das ferramentas de depuração do próprio Android Software Development Kit do Google, o AndBug não requer nem espera código-fonte. No entanto, ele exige que você tenha algum nível de familiaridade com Python, já que usa um conceito de pontos de interrupção com script, chamados "hooks", para a maioria das tarefas não triviais. (Se você apenas deseja despejar classes, métodos ou threads carregados, existem scripts de exemplo para isso.)
-- Scott Dunlop [email protected]
AndBug é um programa em constante mudança, à medida que separo scripts individuais que escrevi na IOActive para várias tarefas de contextos proprietários de clientes e da IOActive. No momento, não recomendo a instalação, pois você vai querer atualizá-lo com frequência posteriormente. O AndBug funciona muito bem a partir do seu próprio diretório fonte com pouca configuração.
Instale o Android Software Development Kit de https://developer.android.com/sdk/index.html
Garanta que o Android Debugging Bridge esteja no seu $PATH e utilizável. ::
which adb adb devices
Garanta que você tenha um bom Python e toolchain GNU para sua plataforma. Você vai precisar de GCC e Make. Você também pode querer Pyrex, se desejar fazer alterações na camada primitiva.
Baixe o código mais recente do AndBug de https://github.com/swdunlop/AndBug.git ::
git clone https://github.com/swdunlop/AndBug.git
Compile usando Make ::
make
Ajuste $PYTHONPATH ::
export PYTHONPATH=pwd/lib
Exemplos podem ser encontrados no diretório sample, mas a maneira mais fácil de encontrar funcionalidades pré-empacotadas no AndBug é usando o comando "andbug" diretamente. ::
./andbug
Este comando atualmente não tem a inteligência para detectar automaticamente quando está sendo executado a partir do diretório fonte e atualizar o PYTHONPATH dinamicamente. Você vai querer ter certeza de que o PYTHONPATH inclui seu diretório andbug/lib.
P: Recebo "Permission Denied" ao tentar usar o AndBug, mas "adb shell" funciona.
R: Seu adbd provavelmente está sendo executado como outro usuário, bloqueando o uso eficaz do ADB forward. Use "adb kill-server" e depois "adb start-server" com o usuário efetivo correto.
P: Recebo "Shell Exception" ao tentar usar o AndBug.
R: Verifique se sua configuração ADB está funcionando usando "adb devices" -- o AndBug depende do ADB para um transporte JDWP.
P: O AndBug funciona no Windows?
R: Acredito que sim; mas como o AndBug é um software não suportado, você pode ter menos assistência do que os usuários Windows estão acostumados. Correções são bem-vindas.
P: O AndBug funciona no Mac OS X?
R: Sim, mas veja a ironia sobre os usuários Windows. Você não encontrou isso em uma app store..
P: Navi me dá um RequestError 13.
R: Você retomou o processo; o Navi só pode interagir com segurança com processos suspensos. Use "suspend" novamente.
P: Recebo "EOF in read" ao enviar um comando.
R: Garanta que nenhum outro depurador esteja conectado, como o DDMS.
Copyright 2011, IOActive Todos os direitos reservados.
AndBug é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da versão 3 da GNU Lesser General Public License conforme publicada pela Free Software Foundation.
AndBug é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO. Veja a GNU Lesser General Public License para mais detalhes.
Você deve ter recebido uma cópia da GNU Lesser General Public License junto com o AndBug. Se não, veja http://www.gnu.org/licenses/.