A method for renaming identifiers in a Java.TM. program. In one embodiment,
new names are assigned to Java classes, fields and methods within the
given constraints inherent within a Java system. In one embodiment, a
minimum number of different new names are assigned to the identifiers to
achieve an optimal renaming. In one embodiment, a class inheritance
hierarchy and method lists are used to identify naming dependencies. In
one embodiment, new method names are then proposed and assigned
systematically by starting at a given location in an ordered list of new
names and then traversing the ordered list until an acceptable new name is
identified in view of the naming dependencies. In one embodiment, naming
redundancy is introduced. In one embodiment, the new names are shorter
than the original names such that less storage space is required for the
Java class files. In another embodiment, the new names are non-descriptive
such that the program with renamed identifiers is obfuscated. In yet
another embodiment, naming redundancies are removed such that an
obfuscated program is easier to comprehend.
Um método para rebatizar identificadores em um programa de Java.TM.. Em uma incorporação, os nomes novos são atribuídos às classes, aos campos e aos métodos de Java dentro dos confinamentes dados inerentes dentro de um sistema de Java. Em uma incorporação, um número mínimo de nomes novos diferentes é atribuído aos identificadores para conseguir um rebatismo optimal. Em uma incorporação, uma hierarquia do inheritance da classe e as listas do método são usadas identificar nomear dependências. Em uma incorporação, os nomes novos do método então estão propostos e atribuídos sistematicamente começando em uma posição dada em uma lista requisitada de nomes novos e então atravessando a lista requisitada até que um nome novo aceitável esteja identificado na vista das dependências nomeando. Em uma incorporação, nomear a redundância é introduzido. Em uma incorporação, os nomes novos são mais curtos do que os nomes do original tais que menos espaço de armazenamento está requerido para as limas da classe de Java. Em uma outra incorporação, os nomes novos são non-descritivos tais que o programa com identificadores rebatizados está ofuscado. Em contudo uma outra incorporação, nomeando redundâncias é removida tais que um programa ofuscado é mais fácil de compreender.