Motivo de los idiomas de alto nivel:
Digamos que está escribiendo un programa que está escrito y se ejecuta bajo la máquina de los atacantes que puede enviar un ataque contra una máquina remota o lo que sea. No tiene sentido escribir en lenguaje de bajo nivel si requiere más tiempo para administrar. Por lo tanto, también puede escribirlo en un lenguaje de alto nivel que use un lenguaje de código de bytes como .NET o Java, etc., de modo que sea multiplataforma y fácil de administrar y escalabilidad.
Motivo de los idiomas de bajo nivel o código nativo:
Supongamos que está escribiendo algún tipo de código pentest para ejecutar en la máquina víctima, lo ideal es que desee menos dependencias por lo que es probable que se ejecute en más máquinas. Si usamos un lenguaje de alto nivel como Java, entonces necesitamos que todas las víctimas tengan Java VM instalada.
Si estamos hablando de la plataforma de Windows, otras razones por las cuales el código nativo estaría explotando las ventanas internas es mucho más difícil en los idiomas de bytecode. Bytecode solo se ejecuta bajo el anillo 3 donde, como lenguajes nativos, como ensamblaje, C y C ++, puede escribir controladores para que se ejecuten en tonos inferiores.
Por lo tanto, el resumen solo depende de la codificación.