¿Cómo es beneficioso aprender a programar en lenguaje ensamblador para conseguir un trabajo?

Estas son las ventajas del lenguaje ensamblador:

  • Tamaño mínimo del código. Por ejemplo: un programa hello world en java tiene un tamaño de aproximadamente 4kb, mientras que en lenguaje ensamblador este tamaño estará en bytes.
  • Mayor velocidad de ejecución . El código de ensamblado escrito correctamente es mucho más rápido que el código c.
  • Control explícito . Puede seleccionar exactamente qué registro usar, tamaño de pila, etc. No hay un compilador entre su código y el ejecutable, solo el ensamblador, el enlazador y el cargador.

Donde sea que necesite cualquiera de las cosas anteriores, necesitará lenguaje ensamblador. Por lo tanto, se requiere conocimiento del lenguaje ensamblador en las siguientes áreas:

  1. Ingeniería inversa . Con la ayuda del lenguaje ensamblador puede comprender el funcionamiento del programa / ejecutable sin el código fuente, utilizando solo el ejecutable. Por lo tanto, podría escribir su propio código para la misma tarea. Esto se puede usar para descifrar cualquier mecanismo de protección en el programa. Por ejemplo: creé un pequeño script para abrir binarios ingenuamente protegidos. Esto se basa en descompilar el código. Grietas abiertas binarios ingenuamente protegidos.
  2. Controladores de dispositivos . Los controladores de dispositivo están escritos en lenguaje ensamblador para aumentar la velocidad y reducir el tamaño del código.
  3. Virus informáticos Puede escribir diablos específicos de la arquitectura que serán más difíciles de detectar debido a su tamaño reducido.
  4. Cargadores de arranque . Estos todavía están escritos en lenguaje ensamblador.
  5. Código Shell : el código Shell se utiliza para explotar los sistemas, después de que el sistema se ve comprometido. Los hackers escriben su propio código de shell personalizado, mientras que los script kiddies lo copian y pegan. Para analizar o escribir código de shell, necesita conocer el lenguaje ensamblador.

Debe tener un buen conocimiento de ensamblaje, si desea obtener un trabajo en cualquiera de las áreas anteriores.