Menu Close

DexGuard versus ProGuard

DexGuard versus ProGuard

DexGuard é baseado no ProGuard. Essa é a razão pela qual é tão fácil atualizar do ProGuard para o DexGuard. Ambos produtos oferecem funcionalidades muito diferentes. ProGuard é um otimizador genérico para bytecode Java, enquanto DexGuard oferece uma proteção avançada para aplicativos Android. Neste blog, você encontrará uma visão geral das principais diferenças entre os dois produtos.

ProGuard é um otimizador genérico para Java bytecode.
DexGuard é uma ferramenta especializada para proteção de aplicativos Android.

ProGuard é um otimizador versátil para Java bytecode. Ele permite que você diminua, otimize e ofusque aplicativos desktop, aplicativos embutidos e aplicativos móveis (Android). DexGuard, por outro lado, é projetado especificamente para proteger e otimizar aplicativos Android. A proteção em várias camadas que o DexGuard oferece está adaptada para evoluir rapidamente assim como o meio em que os aplicativos móveis são utilizados. Além disso, DexGuard oferece funcionalidades que o ajudam a usar de forma ideal a plataforma Android. Ele vem com uma configuração ajustada para Android Runtime (ART), para bibliotecas comuns (Google Play Services, Dagger, Realm, SQLCipher, etc.) e automaticamente divide arquivos DEX que excedem os limites de tamanho impostos pelo formato (MultiDex).

ProGuard oferece proteção básica contra análise estática.
DexGuard protege aplicativos contra análise estática e dinâmica.

Hackers geralmente combinam duas abordagens ao tentar engenharia reversa em um aplicativo. Eles tentam obter acesso ao código-fonte do aplicativo usando descompiladores (análise estática) e monitoram o comportamento do aplicativo em tempo de execução (análise dinâmica). ProGuard oferece proteção básica somente contra análise estática, enquanto DexGuard não só fortalece o código-fonte do aplicativo usando múltiplas técnicas de ofuscação e criptografia, mas também integra uma série de mecanismos de segurança de tempo de execução (autoproteção do aplicativo de tempo de execução, RASP). Esses mecanismos verificam a integridade do aplicativo e do ambiente em que ele está sendo executado e permite que o aplicativo reaja sempre que uma atividade suspeita é detectada.

ProGuard offers basic protection against static analysis

 

DexGuard protects against static and dynamic analysis

ProGuard oferece ofuscação mínima.
DexGuard aplica múltiplas camadas de criptografia e ofuscação.

Ambos, ProGuard e DexGuard, ofuscam o código de aplicativos Android para protegê-los de engenharia reversa, mas extensão dessa proteção são diferentes. ProGuard oferece proteção básica sob a forma de ofuscação de nomes. DexGuard não apenas ofusca os nomes das classes, campos e métodos, mas também as expressões aritméticas e lógicas e o fluxo de controle do código dentro dos métodos. Além disso, DexGuard criptografa strings e classes e adiciona reflexão para APIs sensíveis ao acesso. O resultado é um aplicativo melhor protegido.

ProGuard foca no bytecode.
DexGuard processa todos os componentes do aplicativo.

Enquanto a ação do ProGuard é restrita ao bytecode de aplicativos Java, DexGuard fornece uma proteção completa. Além de bytecode Dalvik, otimiza, ofusca e criptografa bibliotecas nativas, arquivos manifest, recursos, arquivos de recursos e arquivos asset.

ProGuard é uma ferramenta com código aberto (open source).
DexGuard é um produto comercial, de nível empresarial.

ProGuard pode ser baixado e utilizado gratuitamente para processar seus aplicativos comerciais e não comerciais. Toda a informação necessária para configurar o ProGuard está detalhada no manual on-line. DexGuard é um produto comercial. A licença permite que você use DexGuard e lhe de acesso a uma equipe de engenheiros experientes que podem ajudá-lo a montar e configurar o software.