TFCompiladores
Páginas: 5 (1115 palabras)
Publicado: 7 de septiembre de 2015
Compiladores.
Clave: 1764
Grupo: 01
Prof.: Alejandro Jiménez Hernández.
Tema: Ofuscador de Código JavaScript.
Universidad Nacional Autónoma de México.
Facultad de Ingeniería.
Semestre
2014-1
Ofuscar.
El término significa Deslumbrar, oscurecer o turbar [la vista], Trastornar o
confundir [las ideas], oscurecer [la razón].
Llevado a un término en computación lopodemos definir como el resultado
de cambiar palabras por otras, funciones por otras, resultando de esto una
minimización de algo permitiendo que sea más difícil de entender, así como
difícil de traducir e inclusive copiar de algún sitio en el que se encuentre.
La ofuscación se refiere a encubrir el significado de una comunicación
haciéndola más confusa y complicada de interpretar.
¿Qué es ofuscar elcódigo?
Es una técnica la cual consiste en tomar un fragmente o un código
completo en este caso de JavaScript y volverlo mas complicado de leer e
interpretar al ojo y mente humana, de esta manera logramos muchas
veces ocultar la verdadera funcionalidad del código.
¿Para qué Ofuscar el código?
Bien se sabe que un código puede ser copiado o robado de una página web
ya que su contenido se encuentrasiempre visible. Lo que nos permitirá
ofuscar el código será confundir al ladrón y así no comprenda para que
sirva cada cosa dentro de nuestro código.
Ofuscadores de JavaScript.
Los ofuscadores utilizan diversos mecanismos para hacer casi imposible
de
entender el código
fuente
de
una
aplicación.
Manteniendo
el
comportamiento de la aplicación, consiguen ensuciar y dificultar tanto elcódigo que no es mayor problema que alguien pueda acceder a ese código.
En internet existen muchas herramientas que permiten ofuscar un código
en JavaScript, así como de otro tipo de lenguajes que existe como puede
ser Java, PHP, entre otros más.
Algunos de los buscadores utilizados son los siguientes:
- Daft Logic.
- YUI Compressor.
- Packer.
- Jasob.
- JSMIN.
Jasob.
El programa ofuscador Jasob ofreceun ejemplo del resultado de ofuscar
cierto código JavaScript.
Este es el código original antes de ofuscarlo:
//-----------------------------------------------------// Calculate salary for each employee in "aEmployees".
// "aEmployees" is array of "Employee" objects.
//-----------------------------------------------------function CalculateSalary(aEmployees)
{
var nEmpIndex = 0;
while (nEmpIndex< aEmployees.length)
{
var oEmployee = aEmployees[nEmpIndex];
oEmployee.fSalary = CalculateBaseSalary(oEmployee.nType,
oEmployee.nWorkingHours);
if (oEmployee.bBonusAllowed == true)
{
oEmployee.fBonus = CalculateBonusSalary(oEmployee.nType,
oEmployee.nWorkingHours,
oEmployee.fSalary);
}
else
{
oEmployee.fBonus = 0;
}
oEmployee.sSalaryColor = GetSalaryColor(oEmployee.fSalary +
oEmployee.fBonus);nEmpIndex++;
}
}
Después de pasar el código anterior por el ofuscador el resultado es:
function c(g){var m=0;while(m
r.k=e(r.n,r.o,r.l);}else{r.k=0;}r.t=f(r.l+r.k);m++;}}
Al sustituir todos los nombres de las variables y de las funciones por
nombres de una sola letra, es prácticamente imposible comprender el
código del programa. En ocasiones,también se utilizan ofuscadores de
este tipo con el propósito de reducir el tamaño del código fuente.
JSMIN
Otra herramienta que puede ser utilizada a través de consola es JSMIN.
Este es un filtro que remueve comentarios, y espacios blancos
innecesarios de un archivo del tipo JavaScript, esto permite reducir en gran
medida el tamaño del archivo, casi a la mitad. Lo que nos da como ventaja
unamayor velocidad al momento de descargarse.
¿Qué es lo que hace?
JSMIN modifica u omite algunos caracteres de manera que no cambie la
funcionalidad del código, si no simplemente reducir el mismo código a lo
más que sea posible, El resultado de esto nos devolverá un código difícil de
leer e interpretar, así como de depurarlo de una manera “manual”.
Se recomienda tener siempre una copia del código...
Leer documento completo
Regístrate para leer el documento completo.