elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: [Aporte] Mejores practicas en Java


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Porque dicen C y no C++ cuando...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Porque dicen C y no C++ cuando...  (Leído 5,065 veces)
Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Porque dicen C y no C++ cuando...
« Respuesta #10 en: 25 Junio 2011, 13:30 »

la respuesta más obvia es que C++ "al traer más cosas" utiliza más "cosas", cuando se programan ese tipo de programas se busca que sean pequeños y que no llamen la atención...

Simplemente trae "más cosas", como dices tú, para facilitar la vida al programador e incluso mejorar en rendimiento. ¿Que no llamen la atención? ¿Te piensas que la víctima de un posible virus sabrá si está escrito en C o C++?

C++ tiene (utilizando la parte de objetos dado que de otra forma es "casi" igual a C) más dependencias (librerías propias de C++) que pueden llevarte a problemas de compatibilidad

¿C no tiene sus propias librerías? ¿C no necesita también su runtime library?

C sin embargo al ser un lenguaje muy próximo a ASM (no por la gramática sino por la cercanía a lo que el procesador realmente ejecuta) tiene pocas dependencias...

Me gustaría aclarar que se llama sintaxis y no gramática :rolleyes:. Además que ambos lenguajes, si hacemos un Hola Mundo, tienen exactamente las mismas dependencias. ¿Quieres hacer la prueba ;D?


« Última modificación: 25 Junio 2011, 13:53 por Queta » En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Porque dicen C y no C++ cuando...
« Respuesta #11 en: 25 Junio 2011, 13:45 »

Simplemente trae "más cosas", como dices tú, para facilitar la vida al programador e incluso mejorar en rendimiento. ¿Que no llamen la atención? ¿Te piensas que la víctima de un posible virus sabrá si está escrito en C o C++?

¿C no tiene sus propias librerías? ¿C no necesita también su runtime?

Me gustaría aclarar que se llama sintaxis y no gramática :rolleyes:. Además que ambos lenguajes, si hacemos un Hola Mundo, tienen exactamente las mismas dependencias. ¿Quieres hacer la prueba ;D?

La mayoría del malware no usa la RTL de C, por lo que no, no tienen dependencias adicionales. En C++ no puedes elegir no usar la RTL y usar simplemente la API de Win (o si puedes, pero no merece la pena). Además es muy fácil combinar C con ASM, si usas C++ tendrás problemas adicionales como el puntero this en las llamadas a los métodos, etc.

Saludos


En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Porque dicen C y no C++ cuando...
« Respuesta #12 en: 25 Junio 2011, 13:55 »

Totalmente de acuerdo, pero él dijo que C++ tiene más dependencias que C y eso es mentira si los utilizamos de forma "normal", un Hola Mundo por ejemplo...
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
pucheto

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Porque dicen C y no C++ cuando...
« Respuesta #13 en: 25 Junio 2011, 16:36 »

Además es muy fácil combinar C con ASM, si usas C++ tendrás problemas adicionales como el puntero this en las llamadas a los métodos, etc.
De MSDN :  Arguments are pushed on the stack from right to left, with the this pointer being passed via register ECX on the x86 architecture.
Tan jodido es el tema del puntero a this?
Mientras no uses templates esta todo bien (sobre todo pq los templates son para programacion generica). Y de ultima uno hace wrapers q despues el compilador cuando optimize los saca.

Estoy casi seguro que el tema de el Runtime uno tambien lo puede sacar en C++, pero se queda con un subconjunto del lenguaje bastante parecido a C.
En línea

Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Porque dicen C y no C++ cuando...
« Respuesta #14 en: 25 Junio 2011, 16:38 »

Queta, aporta simplemente, pero no critiques si no fundamentas como se debe, para trollear estoy yo nomas. xD

Zero, Karman, grandes! eso es lo que queria saber, muchas gracias!
En línea

Lunfardo


Desconectado Desconectado

Mensajes: 567


Ver Perfil
Re: Porque dicen C y no C++ cuando...
« Respuesta #15 en: 25 Junio 2011, 17:31 »

la misma razon por la cual mucho creen que el kernel de windows esta echo en c++ cuando en realidad es un especie de c con unas aportes bastante de basicos de objetos, no mentira no es la misma, pero talves viene por ahi =P
En línea

jaunx

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Porque dicen C y no C++ cuando...
« Respuesta #16 en: 25 Junio 2011, 17:58 »

no creo que nadie que sepa c++ haga el cliente de un rat en asm.....pero tambien sexiste el sado... >:D
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Porque dicen C y no C++ cuando...
« Respuesta #17 en: 25 Junio 2011, 18:11 »

De MSDN :  Arguments are pushed on the stack from right to left, with the this pointer being passed via register ECX on the x86 architecture.
Tan jodido es el tema del puntero a this?
Mientras no uses templates esta todo bien (sobre todo pq los templates son para programacion generica). Y de ultima uno hace wrapers q despues el compilador cuando optimize los saca.

Estoy casi seguro que el tema de el Runtime uno tambien lo puede sacar en C++, pero se queda con un subconjunto del lenguaje bastante parecido a C.

No es que sea difícil, es que te pisa el registro ecx para apuntar a la clase, para que quieres que el lenguaje haga esto si tu no necesitas clases para nada? La mayoría de software malicioso no es tan grande como para que C++ sea una ventaja a la hora de tener un código fácil de entender y mantener, al contrario, incluso interesa un código ofuscado, lo más encaminado posible a bajo nivel.

Y como dije, posiblemente sea posible reemplazar la RTL, pero para que? Acaso un malware tiene la extrema necesidad de usar clases por algún motivo? Lo mejor para programar malware en ASM porque tienes el control absoluto sobre el código que se genera, como se genera y que forma toma todo el código dentro del ejecutable. En C tambien lo puedes tener todo perfectamente bajo control, conociendo más o menos al compilador y al entorno para el que programas, y si no usas la RTL el código en C sea posiblemente más eficiente que en ASM, además de más fácil de escribir.

El asunto es que un buen malware tiene que estar lo más próximo posible al sistema operativo para el que está diseñado, no estar sujeto a exigencias del lenguaje de programación.

no creo que nadie que sepa c++ haga el cliente de un rat en asm.....pero tambien sexiste el sado... >:D

Pasa que el cliente de un RAT no es malware, malware es la parte que infecta. Yo estoy haciendo junto con Karcrack un RAT desde hace bastante tiempo, el cliente está en C++ usando Qt porque obviamente es la mejor opción, el cliente son muchas lineas de código, tiene interfaz gráfica y controla bastantes cosas a la vez. Pero el servidor está en ASM, lo que permite que el servidor pese menos de 500 bytes, y las funciones están en C, lo que permite que sea código fácil de escribir y a la vez muy ligero.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Porque dicen C y no C++ cuando...
« Respuesta #18 en: 25 Junio 2011, 20:50 »

Queta, aporta simplemente, pero no critiques si no fundamentas como se debe, para trollear estoy yo nomas.

¿Que aporte? Perdona, si lees bien el post completo supongo que sabrás quién ha aportado una respuesta con argumentos y quién crea posts basura. En todo caso ya te dieron tu querida solución; yo simplemente respondí a Karman, diciéndole que estaba equivocado. Al menos tengo un mínimo de coherencia y en el caso que me hubiese equivocado, me lo hubieran dicho y perfecto, de todo se aprende. Es más, [Zero] ya me "corrigió".

Yo estoy haciendo junto con Karcrack un RAT desde hace bastante tiempo

A ver cuándo lo termináis que ya lo quiero ver :D.
« Última modificación: 25 Junio 2011, 20:52 por Queta » En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
xacks

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Porque dicen C y no C++ cuando...
« Respuesta #19 en: 25 Junio 2011, 21:51 »

Pienso igual  :-\

C++ es como el avance de C, y está orientada a objetos.
« Última modificación: 2 Junio 2013, 15:57 por xacks » En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines