Ejecutable autoextraible

Iniciado por AbyssOfEternalCry, 20 Noviembre 2013, 16:59 PM

0 Miembros y 1 Visitante están viendo este tema.

AbyssOfEternalCry

Buenas a todos.

Llevo muy poco tiempo en C++ y venía a hacer una consulta a ver si me podéis dar un poco de información.

Estoy haciendo un programa para ejecutar otro ejecutable que hay dentro del proyecto pero tengo problemas para hacerlo...

Primero que no sé ni siquiera si es posible eso, pero me he guiado un poco por este tema de aquí: http://foro.elhacker.net/programacion_cc/ejecutar_exe_desde_c-t310021.0.html

En principio el CreateProcess está claro, lo que no sé es cómo ejecutar un archivo que está incluido en el paquete. No sé si me termino de explicar... Todo el proyecto acabaría dentro de un sólo ejecutable. No es que el otro ejecutable estuviera en la carpeta del ejecutable final.

He probado con direcciones como "/archivo.exe" esperando que lo tomase como una dirección relativa al proyecto pero nope.

Para aclarar cosas vengo de Java, donde tampoco es que sea un experto pero me manejo.

Muchas gracias.

P.D.: Para más información decir que no lo voy a usar con fines malignos. Es para guardar el cliente editado de mi servidor de un juego para que no puedan hacer ediciones sobre él ya que hay muchas herramientas que fácilmente lo hacen. Pero si el ejecutable está dentro de mi ejecutable personalizado la cosa cambia.

P.D. 2: También he estado leyendo sobre los pipes para capturar el output de un programa. Pregunta 2: ¿Me serviría un pipe para capturar el output del programa sabiendo que el programa está dentro del mismo paquete?

Lo siento si son preguntas muy tontas. Gracias de antemano.

P.D. 3: Se me olvidaba que el ejecutable que va dentro del paquete no puedo descomprimirlo en otra carpeta que no sea la del juego porque requiere una serie de librerías que hay en la carpeta para iniciar. Y ahí está el problema, no quiero dejarlo a la vista en la carpeta del juego para que no puedan editar el cliente...

xaps

Si te preocupa que editen tu cliente del juego añádele protección contra debuggers y haz verificaciones desde el servidor de las variables más importantes de éste (por ejemplo, el dinero). No creo que por "añadirlo" a tu ejecutable sea más seguro, y tampoco sé si eso es posible sin utilizar herramientas de empaquetado como Winrar.

Saludos
"The programmers of tomorrow are the wizards of the future" - Gave Newel

AbyssOfEternalCry

#2
Muchas gracias por contestar.

Estuve sopesando más opciones y la verdad es que la opción que planteo en este tema ya no me es completamente necesaria pero sí que me gustaría saber cómo sería.

La opción por la que de momento estoy optando haciendo pruebas es cargar una dll al abrir el cliente. Pero sigo queriendo resolver mis dudas con lo que pregunté anteriormente.

Otra cosa más.¿ A qué te refieres con cambiar las variables como el dinero y demás? ¿Tienes algún ejemplo? El tipo de conexión es cliente-servidor y los datos importantes se cargan desde el servidor, por lo cual no pueden cambiar el valor del dinero ni de otras cosas sin tener acceso a mi servidor. De todos modos me interesa eso que planteas y me gustaría un poco más de información de cómo hacerlo. ¿Serviría un editor hexadecimal como por ejemplo XVI32?

Gracias.

P.D.: ¿Cómo haría para añadirle protección contra debuggers? Estoy buscando información por más sitios de todos modos, pero ya que la gente de aquí tiene buenos conocimientos no me parece que esté de más leer la explicación de alguien de aquí.

xaps

Cita de: AbyssOfEternalCry en 21 Noviembre 2013, 19:17 PM
Otra cosa más.¿ A qué te refieres con cambiar las variables como el dinero y demás? ¿Tienes algún ejemplo? El tipo de conexión es cliente-servidor y los datos importantes se cargan desde el servidor, por lo cual no pueden cambiar el valor del dinero ni de otras cosas sin tener acceso a mi servidor. De todos modos me interesa eso que planteas y me gustaría un poco más de información de cómo hacerlo. ¿Serviría un editor hexadecimal como por ejemplo XVI32?

Me refiero exactamente a eso. Si los valores importantes de tu juego no los controlas desde el servidor, con editores de memoria como Cheat Engine podrían modificarlos y hacer trampas en tu juego.

Cita de: AbyssOfEternalCry en 21 Noviembre 2013, 19:17 PM
P.D.: ¿Cómo haría para añadirle protección contra debuggers? Estoy buscando información por más sitios de todos modos, pero ya que la gente de aquí tiene buenos conocimientos no me parece que esté de más leer la explicación de alguien de aquí.

Pues no conozco de ningún tema de aquí que hable sobre ello. Pásate por Ingeniería inversa (http://foro.elhacker.net/ingenieria_inversa-b26.0/) y busca por Anti-Debuggers, probablemente encuentres lo que buscas, además de nuevos métodos y herramientas para proteger tu juego.

Saludos
"The programmers of tomorrow are the wizards of the future" - Gave Newel