miércoles, 11 de diciembre de 2013

Técnicas anti-depurador (anti-debugging)

Una de las herramientas más utilizadas en la ingeniería inversa de software son los depuradores. Hay múltiples razones por las que un programa querría poder evadir el uso de un depurador, ya sean plenamente legítimas o más oscuras. Muchos virus y malware, por razones obvias, suelen usar técnicas para dificultar la depuración de su código, pero también hay casos legítimos donde es interesante tratar de evitar que cualquiera pueda descifrar nuestro código. Un ejemplo claro son los sistemas de protección anti-copia.
Por otro lado, conseguir una protección total contra la depuración de un código no es posible. Sólo depende de la pericia y de lo motivado que esté el analista. En cualquier caso, es bueno conocer algunas de estas técnicas ya sea para proteger tu código o para poder saltártelas mientras haces ingeniería inversa de un malware.