Pedro Candel aka s4ur0n

Pedro Candel aka s4ur0n

Pedro Candel aka s4ur0n

Aplicación práctica de las matemáticas para la ofuscación de código y evasión de AV’s/EDR’s

Sala: SALA 2 | Hora: 10:40 – 12:10

Descripción: Cualquier persona puede resolver una ecuación del tipo x+y siendo x=2 e y=3 ya que el resultado siempre es 5. En ensamblador, es inmediato ver dicha operación incluso si el compilador lo optimiza… Si fuera algo como (x⊕y) + 2*(x^y) dado que su complejidad sintáctica es diferente pero semánticamente son equivalentes… también da 5 como resultado… pero esto complica las reglas de detección…

¿Y si dijeramos que puede ser cambiado por 2*(~(x^y))+3*(~x&y)+3*(x&~y)-2*(~(x&y)) en código? Podéis comprobar su resultado que es siempre 5… O usad cualquier valor para x e y que os devolverá siempre x+y…

Esto nos permitirá evadir muchas reglas cambiando simplemente algo tan simple como que el octeto de una IP sea una suma, resta, multiplicación, divisón, etc… y usaremos constantes opacas, etc… para intentar hacer un FUD de un código sencillo como abrir una shell reversa.

MATERIAL PARA SEGUIR EL TALLER

L@s participantes al taller, tendrán que descargar los snippets del código empleado para el mismo (en el mismo taller y son 350 MB. por WiFi) siendo todo ello compatible para Windows/GNU Linux/Otros…

Deben tener un compilador para C/C++ y un interprete para Python 3 y la dependencia del Z3-Solver (pip3 install z3-solver)

Don`t copy text!