Você está na página 1de 25

Traduzido do Inglês para o Português - www.onlinedoctranslator.

com
Android™Manual do hacker
Android™Há cker's
Mão livro

Joshua J . Drake
Pau Oli vai Fora
Zach Lanier
Collin M uliner
Stephen A . Ridley
Georg W icherski
Android™Manual do hacker

Publicado por
John Wiley & Sons, Inc. 10475
Crosspoint Boulevard
Indianapolis, IN 46256

www.wiley.com

Copyright © 2014 por John Wiley & Sons, Inc., Indianápolis, Indiana

ISBN: 978-1-118-60864-7 ISBN:


978-1-118-60861-6 (ebk) ISBN:
978-1-118-92225-5 (ebk)

Fabricado nos Estados Unidos da América

10 9 8 7 6 5 4 3 2 1

Nenhuma parte desta publicação pode ser reproduzida, armazenada em um sistema de recuperação ou transmitida de
qualquer forma ou por qualquer meio, eletrônico, mecânico, fotocópia, gravação, digitalização ou outros, exceto conforme
permitido pelas Seções 107 ou 108 do Copyright dos Estados Unidos de 1976 Act, sem a permissão prévia por escrito do Editor,
ou autorização através do pagamento da taxa por cópia apropriada ao Copyright Clearance Center, 222 Rosewood Drive,
Danvers, MA 01923, (978) 750-8400, fax (978) 646 -8600. Solicitações de permissão ao Editor devem ser endereçadas ao
Departamento de Permissões, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008,
ou online emhttp://www.wiley.com/go/permissions.

Limite de responsabilidade/exclusão de garantia:A editora e o autor não fazem representações ou garantias com relação à
precisão ou integridade do conteúdo deste trabalho e se isentam especificamente de todas as garantias, incluindo, sem
limitação, garantias de adequação a um propósito específico. Nenhuma garantia pode ser criada ou estendida por vendas ou
materiais promocionais. Os conselhos e estratégias aqui contidos podem não ser adequados para todas as situações. Este
trabalho é vendido com o entendimento de que o editor não está envolvido na prestação de serviços jurídicos, contábeis ou
outros serviços profissionais. Se for necessária assistência profissional, os serviços de um profissional competente devem ser
procurados. Nem o editor nem o autor serão responsáveis por danos decorrentes deste. O fato de uma organização ou site
ser referido neste trabalho como uma citação e/ou uma fonte potencial de informações adicionais não significa que o autor ou
o editor endossam as informações que a organização ou o site possam fornecer ou recomendações que possam fazer. . Além
disso, os leitores devem estar cientes de que os sites da Internet listados neste trabalho podem ter mudado ou desaparecido
entre o momento em que este trabalho foi escrito e o momento em que foi lido.

Para obter informações gerais sobre nossos outros produtos e serviços, entre em contato com nosso Departamento de Atendimento ao Cliente nos
Estados Unidos em (877) 762-2974, fora dos Estados Unidos em (317) 572-3993 ou fax (317) 572-4002.

Wiley publica em uma variedade de formatos impressos e eletrônicos e por impressão sob demanda. Alguns materiais incluídos nas
versões impressas padrão deste livro podem não estar incluídos em e-books ou em impressão sob demanda. Se este livro se referir a
mídia como um CD ou DVD que não está incluído na versão que você comprou, você pode baixar este material emhttp://
booksupport.wiley.com.Para obter mais informações sobre os produtos Wiley, visitewww.wiley.com.

Número de controle da Biblioteca do Congresso:2013958298

Marcas registradas:Wiley e o logotipo da Wiley são marcas comerciais ou marcas registradas da John Wiley & Sons, Inc. e/ou suas
afiliadas, nos Estados Unidos e em outros países, e não podem ser usadas sem permissão por escrito. Android é uma marca registrada do
Google, Inc. Todas as outras marcas registradas são de propriedade de seus respectivos proprietários. A John Wiley & Sons, Inc., não está
associada a nenhum produto ou fornecedor mencionado neste livro.
Sobre a Autores

Joshua J. Drakeé diretor de pesquisa científica do Accuvant LABS. Joshua se


concentra em pesquisas originais em áreas como engenharia reversa e análise,
descoberta e exploração de vulnerabilidades de segurança. Ele tem mais de 10 anos
de experiência na área de segurança da informação, incluindo pesquisa de segurança
do Linux desde 1994, pesquisa de segurança do Android desde 2009 e consultoria
para os principais OEMs do Android desde 2012. Em funções anteriores, atuou no
Metasploit e no iDefense Labs da VeriSign. Na BlackHat USA 2012, Georg e Joshua
demonstraram explorar com sucesso o navegador Android 4.0.1 via NFC. Joshua
falou na REcon, CanSecWest, RSA, Ruxcon/Breakpoint, Toorcon e DerbyCon. Ele
ganhou o Pwn2Own em 2013 e ganhou o DefCon 18 CTF com a equipe ACME Pharm
em 2010.

Pau Oliva Foraé um engenheiro de segurança móvel com viaForensics. Ele já


trabalhou como engenheiro de P+D em um provedor sem fio. Ele tem pesquisado
ativamente os aspectos de segurança no sistema operacional Android desde sua
estreia com o T-Mobile G1 em outubro de 2008. Sua paixão pela segurança de
smartphones se manifestou não apenas nas inúmeras explorações e ferramentas
que ele criou, mas de outras maneiras, como como moderador do muito popular
fórum XDA-Developers antes mesmo do Android existir. Em seu trabalho, ele
forneceu consultoria para os principais OEMs do Android. Seu estreito envolvimento
e observação das comunidades de segurança móvel o deixaram particularmente
animado por fazer parte da elaboração de um livro dessa natureza.

Zach Lanieré Pesquisador de Segurança Sênior na Duo Security. Zach está


envolvido em diversas áreas de segurança da informação há mais de 10 anos.
Ele vem realizando pesquisas de segurança móvel e integrada desde 2009,

v
vi sobre os autores

variando de segurança de aplicativo a segurança de plataforma (especialmente


Android), a segurança de dispositivo, rede e operadora. Suas áreas de interesse de
pesquisa incluem técnicas ofensivas e defensivas, bem como tecnologias que
melhoram a privacidade. Ele se apresentou em várias conferências públicas e
privadas do setor, como BlackHat, DEFCON, ShmooCon, RSA, Intel Security
Conference, Amazon ZonCon e muito mais.

Collin Mullineré pesquisador de pós-doutorado na Northeastern University. Seu


principal interesse está em segurança e privacidade de sistemas móveis e embarcados
com ênfase em dispositivos móveis e smartphones. Seus primeiros trabalhos datam de
1997, quando desenvolveu aplicativos para Palm OS. Collin é conhecido por seu trabalho
na (in) segurança do Multimedia Messaging Service (MMS) e do Short Message Service
(SMS). No passado, ele estava mais interessado em análise de vulnerabilidades e
segurança ofensiva, mas recentemente mudou seu foco para o lado defensivo para
desenvolver mitigações e contramedidas. Collin recebeu um Ph.D. em ciência da
computação pela Technische Universität Berlin; antes, ele completou seu mestrado e
bacharelado em ciência da computação na UC Santa Barbara e FH Darmstadt.

Ridley(como seus colegas se referem a ele) é pesquisador de segurança e autor com


mais de 10 anos de experiência em desenvolvimento de software, segurança de software
e engenharia reversa. Nesses últimos anos, Stephen apresentou sua pesquisa e falou
sobre engenharia reversa e segurança de software em todos os continentes (exceto na
Antártida). Anteriormente, Stephen atuou como Chief Information Security Officer do
Simple.com, um novo tipo de banco online. Antes disso, Stephen foi pesquisador sênior da
Matasano Security e membro fundador do grupo Security and Mission Assurance (SMA)
em uma grande empreiteira de defesa dos EUA, onde se especializou em pesquisa de
vulnerabilidade, engenharia reversa e “software ofensivo” em apoio ao Comunidade de
Defesa e Inteligência dos EUA. Atualmente, Stephen é pesquisador principal da Xipiter
(uma empresa de pesquisa e pesquisa de segurança da informação D que também
desenvolveu um novo tipo de dispositivo de sensor inteligente de baixa potência).
Recentemente, Stephen e seu trabalho foram apresentados na NPR e NBC e em Com fio, a
Washington Post,Empresa Rápida,VentureBeat,Slashdot,O registro, e outras publicações.

Georg Wicherskié Pesquisador Sênior de Segurança da CrowdStrike. Georg gosta


particularmente de mexer nas partes de baixo nível da segurança do computador;
ajustando manualmente o shellcode personalizado e obtendo a última porcentagem
em confiabilidade de exploração estável. Antes de ingressar na CrowdStrike, Georg
trabalhou na Kaspersky e na McAfee. Na BlackHat USA 2012, Joshua e Georg
demonstraram explorar com sucesso o navegador Android 4.0.1 via NFC. Ele falou na
REcon, SyScan, BlackHat EUA e Japão, 26C3, ph-Neutral, INBOT e várias outras
conferências. Com sua equipe CTF local 0ldEur0pe, ele participou de inúmeras e
ganhou inúmeras competições.
Sobre a Técnica Al Editor

Rob Shimonski(www.shimonski.com) é um autor e editor best-seller com mais de 15


anos de experiência no desenvolvimento, produção e distribuição de mídia
impressa na forma de livros, revistas e periódicos. Até o momento, Rob criou
com sucesso mais de 100 livros que estão atualmente em circulação. Rob
trabalhou para inúmeras empresas que incluem CompTIA, Microsoft, Wiley,
McGraw Hill Education, Cisco, National Security Agency e Digidesign.
Rob tem mais de 20 anos de experiência trabalhando em TI, redes, sistemas e segurança. Ele
é um veterano das forças armadas dos EUA e esteve entrincheirado em tópicos de segurança
por toda a sua carreira profissional. Nas forças armadas, Rob foi designado para um batalhão
de comunicações (rádio) de apoio aos esforços e exercícios de treinamento. Tendo trabalhado
com telefones celulares praticamente desde o início, Rob é um especialista em desenvolvimento
e segurança de telefones celulares.

vii
Créditos

Editor executivo Gerente de marketing


Carol Long Ashley Zurcher
Editores de projetos Gerente de negócios
Ed Connor Amy Knies
Sydney Jones Argenta
Vice-presidente e editora do
Editor Técnico grupo executivo
Rob Shimonski Richard Swadley
Editor de Produção Editor Associado
Daniel Scribner Jim Minatel
Editor de cópia Coordenador de Projetos,
Charlotte Kughen Capa Todd Klemme

Gerente Editorial Revisores


Mary Beth Wakefield Mark Steven Long
Josh Chase, Palavra Um
Gerente Editorial Freelancer
Rosemarie Graham Indexador
Ron Strauss
Diretor Adjunto de Marketing
David Mayhew Designer de capa
Wiley
Imagem de capa
O robô Android é reproduzido ou modificado a partir do trabalho criado e compartilhado
pelo Google e usado de acordo com os termos descritos na Licença de atribuição
Creative Commons 3.0.

ix
Reconhecer dgments

Agradeço à minha família, em especial à minha esposa e filho, pelo apoio e carinho
incansáveis durante este projeto. Agradeço aos meus pares da indústria e da academia;
seus esforços de pesquisa ultrapassam os limites do conhecimento público. Estendo
minha gratidão a: meus estimados coautores por suas contribuições e discussões francas,
Accuvant por ter a graça de me deixar seguir este e outros empreendimentos, e Wiley por
estimular este projeto e nos guiar ao longo do caminho. Por último, mas não menos
importante, agradeço aos membros do #droidsec, à equipe de segurança do Android e à
equipe de segurança da Qualcomm por impulsionar a segurança do Android.

— Joshua J. Drake

Gostaria de agradecer a Iolanda Vilar por me incentivar a escrever este livro e


me apoiar durante todo o tempo em que estive longe dela no computador.
Ricard e Elena por me deixarem seguir minha paixão quando eu era criança.
Wiley e todos os coautores deste livro, pelas incontáveis horas que trabalhamos
juntos, e especialmente a Joshua Drake por toda a ajuda com meu inglês ruim.
Aos colegas da viaForensics pela incrível pesquisa técnica que fazemos juntos. E,
finalmente, todo o pessoal do canal #droidsec irc, a comunidade Android
Security em G+, Nopcode, 48bits e todos que eu sigo no Twitter; sem você eu não
seria capaz de acompanhar todos os avanços em segurança móvel.

— Pau Oliveira

XI
xii Agradecimentos

Gostaria de agradecer a Sally, o amor da minha vida, por me aturar; minha


família por me encorajar; Wiley/Carol/Ed pela oportunidade; meus coautores por
compartilharem essa jornada árdua, mas incrível; Ben Nell, Craig Ingram, Kelly
Lum, Chris Valasek, Jon Oberheide, Loukas K., Chris Valasek, John Cran e Patrick
Schulz pelo apoio e feedback; e outros amigos que me ajudaram e apoiaram ao
longo do caminho, quer um de nós saiba ou não.

— Zach Lanier

Gostaria de agradecer a minha namorada Amity, minha família e meus amigos e


colegas por seu apoio contínuo. Além disso, gostaria de agradecer aos meus orientadores
por fornecerem o tempo necessário para trabalhar no livro. Agradecimentos especiais a
Joshua por fazer este livro acontecer.

— Collin Mulliner

Ninguém merece mais agradecimentos do que meus pais: Hiram O. Russell e


Imani Russell, e meus irmãos mais novos: Gabriel Russell e Mecca Russell. Muito de
quem (e o que) eu sou deve-se ao apoio e amor da minha família. Ambos os meus
pais me encorajaram imensamente e meu irmão e minha irmã nunca deixaram de
me impressionar em seu intelecto, realizações e qualidade como seres humanos.
Vocês todos são o que mais importa para mim. Também gostaria de agradecer à
minha linda noiva, Kimberly Ann Hartson, por me aturar durante todo esse processo
e por ser uma força tão amorosa e calmante em minha vida. Por fim, gostaria de
agradecer à comunidade de segurança da informação em geral. A comunidade de
segurança da informação é estranha, mas eu “cresci” mesmo assim. Colegas e
pesquisadores (incluindo meus coautores) são uma fonte de inspiração constante e
me fornecem as fontes regulares de notícias, drama e objetivos aspiracionais que me
mantêm interessado nesse tipo de trabalho. Sinto-me bastante honrado por ter tido
a oportunidade de colaborar neste texto.

— Stephen A. Ridley

Agradeço sinceramente a minha esposa, Eva, e a meu filho, Jonathan, por me aturar
gastando tempo escrevendo em vez de cuidar deles. Eu também te amo. Agradeço a Joshua por
pastorear gatos para fazer este livro acontecer.

— Georg Wicherski
Conteúdo em uma olhadela

Introdução xxv

Capítulo 1 Olhando para o ecossistema 1


Capítulo 2 Design e arquitetura de segurança do Android 25
Capítulo 3 Enraizando seu dispositivo 57
Capítulo 4 Revisando a segurança do aplicativo 83
capítulo 5 Entendendo a superfície de ataque do Android 129
Capítulo 6 Encontrando Vulnerabilidades com o Teste Fuzz 177
Capítulo 7 Depuração e análise de vulnerabilidades 205
Capítulo 8 Explorando o software do espaço do usuário 263
Capítulo 9 Programação Orientada a Retorno 291
Capítulo 10 Hackeando e Atacando o Kernel 309
Capítulo 11 Atacando a camada de interface de rádio 367
Capítulo 12 Mitigações de Exploração 391
Capítulo 13 Ataques de hardware 423
Apêndice A Catálogo de Ferramentas 485
Apêndice B Repositórios de código aberto 501
apêndice C Referências 511

Índice 523

xiii
Cconteúdo

Introdução xxv
Capítulo 1 Olhando para o ecossistema 1
Entendendo as raízes do Android 1
Histórico da empresa 2
Histórico de versões 2
Examinando o código aberto do pool de 4
dispositivos, principalmente 7
Entendendo as partes interessadas do Android 7
Google 8
Fornecedores de hardware 10
Operadoras 12
Desenvolvedores 13
Usuários 14
Compreendendo as complexidades do ecossistema 15
Fragmentação 16
Compatibilidade 17
Atualizar problemas 18
Divulgações públicas de 21
segurança versus abertura 22
Resumo 23
Capítulo 2 Design e arquitetura de segurança do Android Noções 25
básicas sobre a arquitetura do sistema Android Noções básicas 25
sobre limites de segurança e aplicação 27
Sandbox do Android 27
Permissões do Android 30
Olhando mais de perto as camadas 34
Aplicativos Android 34
A estrutura do Android 39

xv
xvi Conteúdo

O código nativo do espaço do 40


usuário da máquina virtual Dalvik 41
O Kernel 49
Segurança complexa, resumo de explorações 55
complexas 56
Capítulo 3 Enraizando seu dispositivo 57
Entendendo o layout da partição 58
Determinando o layout da partição 59
Entendendo o processo de inicialização 60
Acessando o modo de download 61
Carregadores de inicialização bloqueados e desbloqueados 62
Imagens de recuperação de estoque e personalizadas 63
Enraizamento com um carregador de inicialização desbloqueado 65
Enraizamento com um carregador de inicialização bloqueado 68
Ganhando root em um sistema inicializado 69
Bloqueios NAND, Raiz Temporária e Raiz Permanente 70
Persistindo uma Raiz Suave 71
Histórico de ataques conhecidos 73
Kernel: Wunderbar/asroot 73
Recovery: Volez 74
Udev: Explodir 74
Adbd: RageAgainstTheCage Zygote: 75
Zimperlich and Zysploit Ashmem: 75
KillingInTheNameOf e psneuter Vold: 76
GingerBreak 76
PowerVR: levitador 77
Libsysutils: zergRush 78
Kernel: mempodroid 78
Permissão de arquivo e ataques relacionados a links 79
simbólicos Adb Restore Race Condition 79
Exynos4: abuso de exynos 80
Diag: iluminado / diaggetroot 81
Resumo 81
Capítulo 4 Revisando a segurança do aplicativo 83
Problemas comuns 83
Problemas de permissão do aplicativo 84
Transmissão insegura de dados confidenciais 86
Armazenamento de dados inseguro 87
Vazamento de informações por meio de 88
logs de endpoints IPC inseguros 89
Estudo de caso: aplicativo de segurança móvel 91
Perfil 91
Análise estática 93
Análise dinâmica 109
Ataque 117
Conteúdo xvii

Estudo de caso: cliente SIP 120


Digite Drozer 121
Descoberta 121
Snarf 122
Injeção 124
Resumo 126
capítulo 5 Entendendo a superfície de ataque do Android Uma 129
cartilha de terminologia de ataque 130
Vetores de Ataque 130
Superfícies de Ataque 131
Classificando as superfícies de ataque 133
Propriedades da superfície 133
Decisões de Classificação 134
Superfícies de Ataque Remoto 134
Conceitos de rede 134
Pilhas de rede 139
Tecnologias móveis de 140
serviços de rede expostos 142
Infraestrutura do Google de superfície 143
de ataque do lado do cliente 148
Adjacência física 154
Comunicações sem fio 154
Outras tecnologias 161
Superfícies de Ataque Local 161
Explorando o sistema de arquivos Encontrando 162
outras superfícies de ataque locais 163
Superfícies de Ataque Físico 168
Dispositivos de desmontagem 169
USB 169
Outras superfícies de ataque físico 173
Resumo das modificações de 174
terceiros 174
Capítulo 6 Encontrando Vulnerabilidades com o Teste 177
Fuzz Fundo difuso 177
Identificando um alvo 179
Criando entradas malformadas 179
Processando entradas 180
Resultados do monitoramento 181
Fusca no Android 181
Receptores de transmissão difusos 183
Identificando um alvo 183
Gerando entradas 184
Fornecendo Insumos 185
Teste de monitoramento 185
xviii Conteúdo

Fuzzing Chrome para Android 188


Selecionando uma tecnologia para direcionar 188
a geração de insumos 190
Processando Entradas 192
Teste de monitoramento 194
Fuzzing a superfície de ataque USB 197
Desafios de Fuzzing USB 198
Selecionando um Modo de 198
Destino Gerando Entradas 199
Processando Entradas 201
Teste de monitoramento 202
Resumo 204
Capítulo 7 Depuração e análise de vulnerabilidades Obtendo 205
todas as informações disponíveis Escolhendo uma 205
cadeia de ferramentas 207
Depuração com Crash Dumps 208
Registros do sistema 208
Lápides 209
Depuração Remota 211
Depurando código Dalvik 212
Depurando um aplicativo de exemplo 213
mostrando o código-fonte do framework 215
Depurando o código existente 217
Depurando código nativo 221
Depurando com o NDK 222
Depurando com Eclipse 226
Depuração com AOSP 227
Aumentando a automação 233
Depurando com símbolos 235
Depuração com um dispositivo não AOSP 241
Depurando código misto 243
Técnicas de depuração alternativas 243
Instruções de depuração 243
Depuração no dispositivo 244
Instrumentação Binária Dinâmica 245
Análise de vulnerabilidade 246
Determinando a causa raiz 246
Julgamento de Explorabilidade 260
Resumo 261
Capítulo 8 Explorando o software do espaço do usuário Noções 263
básicas sobre corrupção de memória 263
Estouro de buffer de pilha 264
Exploração de pilha 268
Conteúdo xix

Uma história de façanhas públicas 275


GingerBreak 275
zergRush 279
mempodroid 283
Explorando o navegador Android 284
Entendendo o Bug 284
Controlando a pilha 287
Resumo 290
Capítulo 9 Programação Orientada a 291
Retorno História e motivação 291
Código separado e cache de instruções 292
Noções básicas de ROP no ARM 294
Chamadas de sub-rotina ARM 295
Combinando gadgets em uma cadeia 297
Identificando gadgets em potencial 299
Estudo de caso: Linker Android 4.0.1 300
Girando o ponteiro de pilha 301
Executando Código Arbitrário a partir de um Novo Mapeamento 303
Resumo 308
Capítulo 10 Hackeando e Atacando o Kernel 309
Kernel Linux do Android 309
Extraindo Kernels 310
Extraindo do firmware de estoque 311
Extraindo de dispositivos 314
Obtendo o Kernel de uma Imagem de 315
Inicialização Descompactando o Kernel 316
Executando o código do kernel personalizado 316
Obtendo o código-fonte 316
Configurando um ambiente de 320
compilação Configurando o kernel 321
Usando módulos de kernel personalizados 322
Criando um kernel personalizado Criando uma 325
imagem de inicialização 329
Inicializando um kernel personalizado 331
Depurando o Kernel 336
Obtendo relatórios de falhas do 337
kernel Entendendo um Oops 338
Depuração ao vivo com KGDB 343
Explorando o Kernel 348
Endereços típicos de 348
extração de kernels Android 350
Estudos de caso 352
Resumo 364
xx Conteúdo

Capítulo 11 Atacando a camada de interface de 367


rádio Introdução ao RIL 368
Arquitetura RIL 368
Arquitetura de smartphone A 369
pilha de telefonia Android 370
Personalização da pilha de 371
telefonia O RIL Daemon (rild) 372
A API Fornecedor-RIL 374
Serviço de mensagens curtas (SMS) 375
Envio e recebimento de mensagens SMS 376
Formato de mensagem SMS 376
Interagindo com o Modem 379
Emulando o Modem para Fuzzing 379
Fuzzing SMS no Android 382
Resumo 390
Capítulo 12 Mitigações de Exploração 391
Assinatura de Código de 392
Mitigação de Classificação 392
Endurecimento da pilha 394
Proteção contra estouros de números inteiros 394
Evitando a execução de dados 396
Randomização do layout do espaço de 398
endereçamento Protegendo a pilha 400
Relocações somente leitura de 401
proteções de string de formato 403
Sandboxing 404
Fortificando o código-fonte 405
Mecanismos de controle de 407
acesso protegendo o kernel 408
Restrições de ponteiro e log 409
Protegendo as regiões de memória 410
somente leitura de página zero 410
Resumo de outras medidas de proteção 411
de mitigações de exploração 414
Desativando recursos de mitigação 415
Mudando sua Personalidade 416
Alterando Binários 416
Ajustando o Kernel 417
Como superar mitigações de exploração 418
Superando as proteções de 418
pilha Superando ASLR 418
Superando as proteções de execução de dados 419
Superando as proteções do kernel 419
Conteúdo xxi

Olhando para o futuro 420


Projetos oficiais em andamento Esforços de 420
endurecimento do kernel da comunidade Um pouco 420
de especulação 422
Resumo 422
Capítulo 13 Ataques de hardware 423
Interface com dispositivos de hardware 424
Interfaces seriais UART 424
EU2C, SPI e interfaces de um fio 428
JTAG 431
Encontrando interfaces de depuração 443
Identificando Componentes 456
Obtendo especificações 456
Dificuldade em identificar componentes 457
Interceptando, Monitorando e Injetando Dados 459
USB 459
EU2Interfaces seriais C, SPI e UART 463
Roubar segredos e firmware 469
Acessando o firmware de forma discreta 469
Acessando o firmware de forma destrutiva 471
O que você faz com um dump? 474
Armadilhas 479
Interfaces personalizadas 479
Interfaces de depuração de 479
dados binários/proprietários 480
Senhas de chip 480
Senhas do carregador de inicialização, teclas de atalho e terminais silenciosos 480
Sequências de inicialização personalizadas 481
Epóxi anti-reversão de linhas de 481
endereço não expostas 482
Criptografia, ofuscação e antidepuração de imagens 482
Resumo 482
Apêndice A Catálogo de Ferramentas 485
Ferramentas de desenvolvimento 485
SDK do Android 485
Android NDK 486
Eclipse 486
Plug-in ADT 486
Pacote ADT 486
Android Studio 487
Extração de firmware e ferramentas de flash 487
Binwalk 487
inicialização rápida 487
xxii Conteúdo

Samsung 488
NVIDIA 489
LG 489
HTC 489
Motorola 490
Ferramentas nativas do Android 491
BusyBox 491
setpropex 491
SQLite 491
traço 492
Ferramentas de engate e instrumentação 492
Estrutura ADBI 492
ldpreloadhook 492
Estrutura XPosed 492
Substrato Cydia 493
Ferramentas de análise estática 493
Smali e Baksmali 493
Androguarda 493
apktool 494
dex2jar 494
jad 494
JD-GUI 495
JEB 495
Radare2 495
Descompilador IDA Pro e Hex-Rays 496
Ferramentas de teste de aplicativos 496
Drozer (Mercury) Framework iSEC 496
Intent Sniffer e Intent Fuzzer 496
Ferramentas de hacking de hardware 496
Segger J-Link 497
JTAGulator 497
OpenOCD 497
Vendas 497
Ônibus Pirata 497
GoodFET 497
Total Phase Beagle USB 498
Facedancer21 498
Fase Total Beagle I2C 498
Chip Quik 498
Pistola de ar quente 498
Xeltek SuperPro 498
IDA 499
Apêndice B Repositórios de código aberto 501
Google 501
AOSP 501
Revisão do código Gerrit 502
Conteúdo xxiii

Fabricantes de SoC 502


Todos os vencedores 503
Intel 503
Marvell 503
MediaTek 504
Nvidia 504
Instrumentos Texas 504
Qualcomm 505
Samsung 505
OEMs 506
ASUS 506
HTC 507
LG 507
Motorola 507
Samsung 508
Celular Sony 508
Fontes a montante 508
Outros 509
Firmware personalizado 509
Linaro 510
Replicante 510
Índices de código 510
Indivíduos 510
apêndice C Referências 511

Índice 523

Você também pode gostar