Ya no se juega al veo veo

260335566fd14d2f3c22df3b1d3b014a?s=47 Alex
February 08, 2015

Ya no se juega al veo veo

260335566fd14d2f3c22df3b1d3b014a?s=128

Alex

February 08, 2015
Tweet

Transcript

  1. 1.

    Alejandro Morais Ya no se juega al veo veo Except

    where otherwise noted, this work is licensed under: http://creativecommons.org/licenses/by-nc-sa/3.0/ Leganés 12-13 Febrero 2015
  2. 2.

    2 • Introducción • Técnicas de Ofuscación en Javascript •

    Herramientas • Problemas con streaming de música, videos… • Posibles Soluciones • Conclusión (Es decir, un mejunje JS + Agenda
  3. 4.
  4. 5.

    5

  5. 16.
  6. 19.
  7. 20.

    Ofuscando: Técnicas • Minimizar • Como funciona eval() • ASCII

    • Unicode • XOR • Split de Strings • Packed • Encriptado Simple • Técnicas Avanzadas
  8. 21.

    Warning Antes de empezar a ofuscar código siempre hay que

    hacer una o varias copias del original (siempre se pierden las copias)
  9. 22.

    • Minimizar Ofuscando: Técnicas • Uso de variables con longitudes

    más cortas • Eliminación de espacios y tabs
  10. 23.

    • Minimizar Ofuscando: Técnicas Twitter: https://abs.twimg.com/c/swift/es/bundle/fro ntpage...js 269 KB ->

    compresión (solo espacios) -> 196 KB ¡¡ Ahorro del 27.2 % !! (Con variables ~ 30%)
  11. 27.

    • XOR (ASCII) Ofuscando: Técnicas Clave: 173 xor_str(“var a =

    …”); Misma función, encripta y desencripta
  12. 28.

    • XOR (Character Encoding) Ofuscando: Técnicas Clave: 173 Misma función,

    encripta y desencripta xor_str(“var a = …”);
  13. 32.

    • Técnica del “Espacio en blanco” Ofuscando: Técnicas Usar “document”

    o “eval”, canta mucho… Lo mismo hacemos con “getElementById”, “innerHtml”,…
  14. 34.
  15. 37.

    Variables “e” y “d” no se usan “c.toString(a)” => Convierte

    “c” en base “a” Por lo tanto base “36”
  16. 38.
  17. 46.

    Caso Grooveshark • “Session”: valor de la cookie • “Uuid”:

    buscamos en JS • “Token”: buscamos en JS JS minimizado. Hmm…
  18. 47.

    Caso Grooveshark El veo veo hardcore: 1. Ctrl + F

    2. Buscar palabra clave 3. Probar 4. Si no funciona vuelve al 1.
  19. 48.

    Caso Grooveshark • “Uuid”: encontrado en app.min.js • “Token”: de

    la peticion getCommunicationToken JS minimizado no tiene “protección”
  20. 50.

    Posible Soluciones • Token / URLs Firmadas • Encriptación AES

    • DRM (~ AES) • Bloquear por localización • Marcas de Agua • Limitar Velocidad
  21. 51.
  22. 53.
  23. 56.

    P2P