Este ataque tem como objetivo manipular as variáveispúblicas não-finais utilizadas
em código móvel, injetando valores maliciosos sobre ela, principalmente em aplicações Java e C + +. Quando uma variável de membro público ou classe usado em código móvel não é declarada como final, os seus valores podem ser maliciosamente manipulados por qualquer função que tem acesso a ele, a fim de estender o código do aplicativo ou adquirir informações críticas sobre o aplicativo.
Exemplos
Uma aplicação Java a partir de um determinado aplicativo é adquirida e subvertida
por um invasor. Em seguida, ele faz com que a vítima aceite e execute um Trojan ou código malicioso que foi preparado para manipular o estado e o comportamento dos objetos não-finais. Este código é instanciado e executado de forma contínua usando o padrão JVM na máquina da vítima. Quando a vítima invoca o applet Java do aplicativo original usando a mesma JVM, o processo malicioso pode ser misturado com o applet do original, portanto, modifica valores de objetos não-finais e executado sob as credenciais da vítima. No exemplo a seguir, a classe "any_class" é declarada como final e variável "SERVER_ADDR" não é:
public final class any_class extends class_Applet {
public URL server_addr; … }
Quando uma variável é declarada como final, seu valor não pode ser modificado.