Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: meoit ARG en 1 Mayo 2014, 01:01 am



Título: Una duda que tengo sobre la separacion de interfaz de la implementacion
Publicado por: meoit ARG en 1 Mayo 2014, 01:01 am
Bueno, aver tengo entendido que un archivo h seria la interfaz de un programa, el archivo h mostraria como se llaman las funciones y variables que hay, si en el archivo h se muestran las funciones miembro (nombre, tipo de la funcion cual es su algoritmo) seria un programa 100 % reutilizable.
tambien tengo entendido que donde esta la funcion main() no se puede ver la implementacion.
Tambien tengo entendido que si tengo un archivo .h que no muentre cada algoritmo de las funciones puedo ejecutarlas pero nose para que sirven.

Espero no equivocarme, con respecto a esto estoy lleno de dudas...

si subo mi programa en .exe... alguien puede sacar el codigo del .h? y el codigo de la implementacion pero sin poder mirarlo?
como lo hace?

 Eso es lo que no entiendo (espero me entiendan), osea como se hace para sacar el codigo del programa, o si se sube a alguna pagina directamente o como seria el tema...

Espero ser claro, cualquier cosita que no entiendan preguntenmen


Título: Re: Una duda que tengo sobre la separacion de interfaz de la implementacion
Publicado por: amchacon en 1 Mayo 2014, 01:51 am
Citar
si subo mi programa en .exe... alguien puede sacar el codigo del .h? y el codigo de la implementacion pero sin poder mirarlo?
como lo hace?
Es imposible, no se puede sacar código C++ de un programa a partir de un exe.


Título: Re: Una duda que tengo sobre la separacion de interfaz de la implementacion
Publicado por: BloodSharp en 1 Mayo 2014, 06:26 am
(...)osea como se hace para sacar el codigo del programa, o si se sube a alguna pagina directamente o como seria el tema...

Se puede utilizar un desamblador o depurador para ver el código de un ejecutable en asembler si eso es lo que preguntás...


B#


Título: Re: Una duda que tengo sobre la separacion de interfaz de la implementacion
Publicado por: Gh057 en 1 Mayo 2014, 06:33 am
hola meoit, lo que indicas es como opera una biblioteca (comúnmente mal llamada librería). el código reutilizable lo implementas desde que separas tus funciones del propio main... sin embargo es extremadamente útil diseñar las funciones y compaginarlas en un mismo archivo para utilizarlas en nuevos proyectos. el .h es la cabecera de la biblioteca, es la que se llama desde el main.c, y tiene la declaración de las funciones; la misma puedes comentarla para explicar como se utiliza cada una y para qué sirve. el .c asociado a ella son las funciones desarrolladas las cuales se utilizarán al ser llamadas; ese código puede ser tanto libre como no. saludos.

(agrego) en cuando a la consulta sobre el .exe, no puedes obtener código c o c++ desde el binario, si puedes desensamblarlo mediante un decompilador y analizando el mismo comprender cómo funciona.


Título: Re: Una duda que tengo sobre la separacion de interfaz de la implementacion
Publicado por: Vaagish en 1 Mayo 2014, 07:29 am
Creo que acá esta clarisimo -> http://es.wikipedia.org/wiki/Archivo_de_cabecera

Citar
Un header file contiene, normalmente, una declaración directa de clases, subrutinas, variables, u otros identificadores. Aquellos programadores que desean declarar identificadores estándares en más de un archivo fuente pueden colocar esos identificadores en un único header file, que se incluirá cuando el código que contiene sea requerido por otros archivos

Con respecto a ver el código de un exe, no hay mucho que agregar,, solo que hay que saber ASM para entender el resultado de un desensamblado..

Saludos!