¿Qué es mejor aprender hackear C o C ++?

Gracias por el A2A.

Antes de comenzar, me gustaría mencionar que saber solo C o C ++ no te convertirá en un hacker experto. Demonios, no sería suficiente llamarte un guión kiddie. Para ser un pirata informático, debe tener un conocimiento profundo de los sistemas que desea piratear y las vulnerabilidades en los sistemas.

Dicho esto, C & C ++:
Más del 60% de las vulnerabilidades que encontrará en la web están escritas en C & C ++, Learning C & C ++ lo ayudará a comprender los desbordamientos de Buffer, el desbordamiento de pila, etc., por lo que aprender C y C ++ es imprescindible para cada hacker / Pen tester

Ahora, históricamente, muchos hacks se han basado en la mutilación deliberada de un espacio de memoria (por ejemplo, para desencadenar alguna excepción o un retorno a un método base). El lenguaje C permite (tal vez incluso fomenta ) ese tipo de actividad.

Sin embargo, no sé si C sigue siendo más útil en la piratería hoy, sin embargo, porque la seguridad es bastante buena en estos días. Aprender C te dará una buena idea del funcionamiento de la computadora, ya que es un lenguaje de muy bajo nivel y este conocimiento te ayudará.

Sin embargo, la mayoría de las personas ahora se han mudado a otros idiomas para escribir Malware y Scripts para automatización como Java y Python. El famoso software de prueba de penetración, Pen Testing Security | Metasploit fue reescrito en Ruby.

Definitel “C”.

No estoy seguro, si eres consciente o no.

La mayoría de los famosos sistemas operativos están desarrollados usando el lenguaje “C”.

Si pudieras aprender este idioma de manera efectiva, aprenderás cosas importantes sobre las funciones del sistema operativo, más o menos.

Ahí puedes seguir para aprender el lenguaje “C ++” y eventualmente el master blaster “Java” y así continúa.

El pirateo no se detiene en ningún nivel, pero para convertirse en un hacker decente uno debe conocer un puñado de lenguajes de programación dentro y fuera.

Buena suerte.

Nota: Corrija si estoy equivocado en alguna parte ya que soy un principiante en estas cosas.

Gracias.

Sathish Kumar

La principal diferencia entre C y C ++ es que C es un lenguaje de programación de procedimientos y no admite clases y objetos, mientras que C ++ es una combinación de lenguaje de programación orientado a procedimientos y objetos; por lo tanto, C ++ puede llamarse un lenguaje híbrido. La siguiente tabla presenta las diferencias entre C y C ++ en detalle.

Diferencia entre C y C ++

C C ++

C fue desarrollado por Dennis Ritchie entre 1969 y 1973 en AT&T Bell Labs.

C ++ fue desarrollado por Bjarne Stroustrup en 1979 con el predecesor de C ++ “C with Classes”.

Cuando se compara con C ++, C es un subconjunto de C ++.

C ++ es un superconjunto de C. C ++ puede ejecutar la mayor parte del código de C, mientras que C no puede ejecutar el código de C ++.

C admite el paradigma de programación de procedimientos para el desarrollo de código.

C ++ soporta paradigmas de programación tanto procesales como orientados a objetos; por lo tanto, C ++ también se llama lenguaje híbrido.

C no admite programación orientada a objetos; por lo tanto, no tiene soporte para polimorfismo, encapsulación y herencia.

Al ser un lenguaje de programación orientado a objetos, C ++ admite polimorfismo, encapsulación y herencia.

En C (porque es un lenguaje de programación procesal), los datos y las funciones son entidades separadas y libres.

En C ++ (cuando se usa como lenguaje de programación orientado a objetos), los datos y las funciones se encapsulan juntos en forma de un objeto. Para crear objetos, la clase proporciona un plano de estructura del objeto.

En C, los datos son entidades libres y pueden ser manipulados por código externo. Esto se debe a que C no admite la ocultación de información.

En C ++, la Encapsulación oculta los datos para garantizar que las estructuras de datos y los operadores se usen según lo previsto.

C, al ser una programación procesal, es un lenguaje impulsado por funciones.

Mientras que C ++ es una programación orientada a objetos, es un lenguaje dirigido por objetos.

C no admite la función ni la sobrecarga del operador.

C ++ admite la sobrecarga de funciones y operadores.

C no permite que las funciones se definan dentro de las estructuras.

En C ++, las funciones se pueden usar dentro de una estructura.

C no tiene la función de espacio de nombres.

C ++ usa NAMESPACE que evita las colisiones de nombres.

Un espacio de nombres es una región declarativa que proporciona un alcance a los identificadores (los nombres de tipos, funciones, variables, etc.) dentro de él. Los espacios de nombres se usan para organizar el código en grupos lógicos y para evitar colisiones de nombres que pueden ocurrir especialmente cuando su base de código incluye múltiples bibliotecas. Todos los identificadores en el ámbito del espacio de nombres son visibles entre sí sin calificación. Los identificadores fuera del espacio de nombres pueden acceder a los miembros utilizando el nombre completo para cada identificador.

C utiliza funciones para entrada / salida. Por ejemplo scanf e printf.

C ++ usa objetos para entrada y salida. Por ejemplo cin y cout.

C no admite variables de referencia.

C ++ admite variables de referencia.

C no tiene soporte para funciones virtuales y de amigos.

C ++ admite funciones virtuales y de amigos.

C proporciona las funciones malloc () y calloc () para la asignación dinámica de memoria, y free () para la desasignación de memoria.

C ++ proporciona un nuevo operador para la asignación de memoria y un operador de eliminación para la desasignación de memoria.

C no proporciona soporte directo para el manejo de errores (también llamado manejo de excepciones)

C ++ proporciona soporte para el manejo de excepciones. Se usan excepciones para errores “duros” que hacen que el código sea incorrecto.

Espero que hayas disfrutado leyendo las diferencias entre C y C ++. Esta comparación de C y C ++ explica la diferencia de características entre ambos lenguajes de programación.