Paso 1: requisitos
se necesita:
1-x86 máquina de linux. mismas técnicas pueden aplicarse para cualquier arquitectura (x64, brazo,...) con gcc instalado
2 - algún tipo de lenguaje compilado como C, C++ o cualquier otro lenguaje que compila directamente en lenguaje máquina (no funciona java, C# no funciona)
3 - el conocimiento muy básico del lenguaje ensamblador. (No es necesario, pero ayudará mucho).