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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Eliminar basura de los exes compilados en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Eliminar basura de los exes compilados en c++  (Leído 6,227 veces)
HaX991

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Eliminar basura de los exes compilados en c++
« en: 12 Julio 2010, 22:31 pm »

Hola a todos, llevo un tiempo buscado como hacer para que los ejecutables creados con visual c++ ocupen menos, puse:

Código
  1. #ifdef WIN32
  2.   #define _WIN32_WINNT 0x0403
  3.   #define WIN32_LEAN_AND_MEAN
  4.   #pragma optimize("gsy", on)
  5.   #pragma comment(linker,"/RELEASE")
  6.   #pragma comment(linker, "/ALIGN:4096")
  7.   #pragma comment(linker, "/IGNORE:4108")
  8.   #pragma comment(linker,"/STUB:stub.exe")
  9.   #pragma pack(1)
  10. #endif
  11.  

ademas tambien puse que lo compile de forma "Release". En forma "Debug" ocupa 190kb y al pasarlo a la otra se keda en unos 20-25kb pero aun asi  sige saliendo dentro del exe esto:

Código:
  TLOSS error
   SING error
    DOMAIN error
  R6028
- unable to initialize heap
    R6027
- not enough space for lowio initialization
    R6026
- not enough space for stdio initialization
    R6025
- pure virtual function call
   R6024
- not enough space for _onexit/atexit table
    R6019
- unable to open console device
    R6018
- unexpected heap error
    R6017
- unexpected multithread lock error
    R6016
- not enough space for thread data
 
abnormal program termination
    R6009
- not enough space for environment
 R6008
- not enough space for arguments
   R6002
- floating point not loaded
    Microsoft Visual C++ Runtime Library

alguien sabe alguna otra forma de hacer que el compilador no meta eso, xk yo creo k eso es innecesario...

Gracias y saludos!


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Eliminar basura de los exes compilados en c++
« Respuesta #1 en: 12 Julio 2010, 22:51 pm »

Podes sacar la RTL (Run Time Library) pero vas a tener que reemplazar las funciones que uses de alguna manera.

Busca:
/NODEFAULTLIB


PD. Obviamente no es basura ni mucho menos.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
HaX991

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: Eliminar basura de los exes compilados en c++
« Respuesta #2 en: 12 Julio 2010, 23:09 pm »

esk vi la imbot k esta en visual c++ y ocupa unos 30-35kb y eso k tiene muxo code y yo cualkier "cosa" que ago ocupa lo mismo con 2 lineas xdd

saludos!!
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Eliminar basura de los exes compilados en c++
« Respuesta #3 en: 12 Julio 2010, 23:40 pm »

Precisamente eso ocurre por lo que te menciono Eternal Idol. Te dejo este articulo que seguramente te aclare el panorama respecto al por que sucede esto:


Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Eliminar basura de los exes compilados en c++
« Respuesta #4 en: 12 Julio 2010, 23:47 pm »

Fíjate también, en las opciones de linker, de decirle que borre la sección .reloc (FIXED), quitar la sección .rsrc y el manifest si no lo usas y eliminar la información de debug. Luego también puedes hacer merge a la sección de código y de datos.

Saludos
« Última modificación: 13 Julio 2010, 01:01 am por [Zero] » En línea


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

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: Eliminar basura de los exes compilados en c++
« Respuesta #5 en: 13 Julio 2010, 02:07 am »

bueno  gracias al crack de [Zero] k me estuvo ayudando por msn hemos dejado el binario en 1,35 KB (1.392 bytes) IMRESIONANTE ( al principio eran 196kb xdddd )

para el k kiera saber como

Código
  1.   #define _WIN32_WINNT 0x0403
  2.   #define WIN32_LEAN_AND_MEAN
  3.   #pragma optimize("gsy", on)
  4.   #pragma comment(linker,"/RELEASE")
  5.   #pragma comment(linker, "/IGNORE:4108")
  6.   #pragma comment(linker, "/FIXED")
  7.   #pragma comment(linker, "/STUB:stub.exe")
  8.   #pragma comment(linker, "/MERGE:.rdata=.data")
  9.   //#pragma comment(linker, "/MERGE:.reloc=.data")
  10.   #pragma comment(linker, "/MERGE:.text=.data")
  11.   #pragma comment(linker, "/NODEFAULTLIB")
  12.   #pragma comment(linker, "/ENTRY:DllMain")
  13.   #pragma comment(linker, "/FILEALIGN:16")
  14.   #pragma comment(linker, "/ALIGN:16")
  15.   #pragma pack(1)
  16.  

saludos!!
graciasss!!!!!
En línea

KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: Eliminar basura de los exes compilados en c++
« Respuesta #6 en: 17 Julio 2010, 19:11 pm »

Hax gracias por la data, pero si en mi programa pongo el codigo tal cual lo mostras, no encuentra el archivo stub.exe, tenes alguna idea de como solucionarlo?
En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
HaX991

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: Eliminar basura de los exes compilados en c++
« Respuesta #7 en: 26 Julio 2010, 11:53 am »

ui sorry el stub no lo trae, te lo intente subir a megaupload pero llevaba 20 min y no se subia solo salia verificacion en proceso... entonces lo subi a un host mio toma:

http://proyect991.es/stub.rar

este stub esta super reducido amm  y si usas funciones estandar del compilador vc++ (Microsoft Visual C++ Runtime Library) y pones  #pragma comment(linker, "/NODEFAULTLIB") no podrs usar strncpy, strncmp...
tendras k sustituirlas por las de string.h...., entre otras...
Pero esa opcion es una de las que hace que tu .exe quede super reducido ;)

pd: al final deje la dll k comento mas arriba en 605 bytes (es un rootkit ring3 :)) solo ordenando el code y usando esas opciones.

saludos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Exe compilados en windows 7 no funcionan con windows xp
Programación Visual Basic
raul338 7 6,330 Último mensaje 21 Diciembre 2010, 16:07 pm
por raul338
restaurar exes
Windows
Geek7 1 1,586 Último mensaje 9 Enero 2013, 21:00 pm
por adgellida
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines