Todos os produtos
Search
Central de documentação

Mobile Platform as a Service:Terminologia

Última atualização: Jun 28, 2026

Este glossário define, em ordem alfabética, os termos de segurança para aplicativos móveis. Cada verbete descreve a função da técnica, a ameaça que ela mitiga e a plataforma aplicável (iOS, Android ou HTML5).

A

Blindagem de pacotes APK/AAB (Android)

Aplica um conjunto abrangente de proteções de segurança a pacotes APK/AAB. As proteções incluem: antidescompilação para pacotes APK/AAB, proteção e antiadulteração de arquivos DEX, defesa contra ataques de caixa branca, proteção de algoritmos de criptografia de shell, antidepuração, antiadulteração de memória, antihooking, antiemulador, antireembalagem e antidump de memória.

Essa camada de proteção defende contra engenharia reversa, análise binária e manipulação em tempo de execução de pacotes de aplicativos Android.

Antiformatação (HTML5)

Força o código JavaScript a permanecer em uma única linha. Assim, qualquer tentativa de reformatar ou renomear o código causa falha na execução. Essa abordagem eleva o custo da análise estática ao dificultar a reconstrução da estrutura do código.

B

Falsificação de ramificações (iOS)

A falsificação de ramificações é uma técnica de ofuscação de fluxo de controle baseada em compilador, construída sobre predicados opacos. Ela combina a análise de alcançabilidade do fluxo de controle com um construtor aleatório de predicados opacos para inserir ramificações espúrias no grafo de fluxo de controle. Isso dificulta a determinação dos caminhos reais de execução do programa por meio de análise estática.

Essa técnica transforma o fluxo de controle com baixo custo, gerando impacto mínimo no desempenho e aumento limitado no tamanho do binário.

image

C

Ofuscação de grafo de chamadas (iOS)

O grafo de chamadas representa as relações de chamadas entre funções e reflete a estrutura macroscópica de um programa. Diferentemente da ofuscação de fluxo de controle intrafunção, a ofuscação de grafo de chamadas opera no nível do módulo. Ela transforma instruções de chamada interfunções para romper a estrutura modular do programa original e eliminar padrões de projeto identificáveis.

Esse recurso neutraliza ferramentas e analistas que tentam reconstruir a lógica do programa examinando relações de chamadas de função de alto nível.

image

Blindagem de segurança de classes (Android)

Ofusca o bytecode Java para ocultar o fluxo real de execução e impedir a descompilação por ferramentas como jadx-gui e jeb. O código blindado deixa de ser diretamente legível por humanos, protegendo a lógica de negócios e algoritmos sensíveis contra engenharia reversa estática.

Minificação de código (HTML5)

Remove espaços em branco, quebras de linha e outros caracteres não essenciais do código-fonte JavaScript. Padrões comuns de código também podem ser compactados ou compartilhados. A saída é comprimida em um número mínimo de linhas, o que reduz significativamente a legibilidade humana e aumenta o esforço necessário para análise manual.

Criptografia de constantes (iOS)

Criptografa vários tipos de constantes de array durante a compilação. Isso oculta strings de exibição, como saídas de log, para reduzir o vazamento de informações. Além disso, esconde arrays de constantes estáticas, como AES S-box, aumentando a dificuldade de identificar algoritmos padrão por correspondência de características estáticas.

image

Achatamento de fluxo de controle (HTML5)

O achatamento de fluxo de controle é uma técnica de ofuscação intrafunção que rompe a ordem original de execução do código e as relações de chamadas de função, dificultando o acompanhamento da estrutura lógica. Ela elimina as relações de sequência entre predecessores de blocos semânticos e aumenta consideravelmente o custo da análise algorítmica.

O compilador de segurança inclui múltiplas implementações de achatamento, selecionadas automaticamente ao processar o programa alvo. A implementação também é blindada contra técnicas de análise de fluxo de controle baseadas em execução simbólica.

image

E

Substituição de expressões (HTML5)

Reescreve expressões binárias em JavaScript em formas equivalentes, porém mais complexas. Por exemplo, uma expressão simples como a + b é substituída por uma expressão complexa equivalente, como a + (-b). Essa substituição aumenta o esforço cognitivo necessário para aplicar engenharia reversa na lógica do código.

image

I

Substituição de instruções (iOS)

Transforma ou expande operações binárias simples no código-fonte — incluindo operações aritméticas e booleanas — em sequências de instruções equivalentes, mas mais complexas. O compilador de segurança aplica dezenas de regras de substituição integradas, selecionadas aleatoriamente durante o processamento. Isso diversifica a saída gerada e neutraliza tentativas de cracking baseadas em padrões.

image

J

Injeção de instruções inúteis e inválidas (iOS)

Instruções inúteis são instruções válidas que executam, mas interferem na análise. Instruções inválidas são ilegais e não podem ser executadas. Juntas, elas são injetadas no binário para atrapalhar descompiladores que dependem da análise estática do fluxo de instruções, forçando o descompilador a processar caminhos inalcançáveis ou inválidos juntamente com o código legítimo.

image

Injeção de código inútil

Insere aleatoriamente código morto e funções mortas na base de código para obscurecer ainda mais a lógica do programa e aumentar o ruído na análise.

O

Mutilação de nomes de propriedades (HTML5)

Renomeia as chaves de propriedade de objetos JavaScript para ocultar as relações de chamada entre módulos de código. Isso impede que analistas usem nomes de propriedades como âncoras semânticas ao rastrear o fluxo de dados.

P

Criptografia de ponteiros (iOS)

Remove relações explícitas de referência entre funções e dados ao criptografar valores de ponteiro. Isso impede que ferramentas de análise estática rastreiem os alvos reais de ponteiros de função e referências de dados.

S

Criptografia de informações de símbolos (iOS)

Informações de símbolos referem-se a nomes de funções e variáveis globais retidos em um binário compilado. A criptografia de informações de símbolos aplica regras específicas para criptografar esses nomes, tornando significativamente mais difícil identificar a estrutura e a lógica do programa por meio de tabelas de símbolos.

image