Autor
|
Tema: PE mas PEqueños.. (Leído 14,322 veces)
|
Vaagish
Desconectado
Mensajes: 875
|
Se puede configurar Masm32 para que queden mas pequeñas las secciones del PE? Tengo mas db 0 que instrucciones.. En C++ podríamos hacer algo asi: #pragma comment(linker,"/merge:.rdata=.text")
Ademas de configurar el IDE para reducir el PE En masm32 hay alguna opcion de eso? O alguna herramienta para modificar las secciones de un programa? Gracias! Saludos!
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Y si le pasas UPX despues de compilar?
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
No me reconoce el formato dice.. Creo que se podria editar a mano... pero existiendo herramientas no me quiero complicar con cada programa..
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
¿Ya probaste a pasarle ese parametro al linker? En principio es el mismo ...
ml /c /Cp /coff archivo.asm link /merge:.rdata=.text archivo.obj
|
|
|
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
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
¿Ya probaste a pasarle ese parametro al linker? En principio es el mismo ...
ml /c /Cp /coff archivo.asm link /merge:.rdata=.text archivo.obj Casi.. el comando lo entiende, pero rompe el archivo.. quedaría así: ml /c /Cp /coff archivo.asm link /subsystem:windows /merge:.rdata=.text archivo.obj No reduce mucho igual.. alguna herramienta que modifique los campos del PEB y redimensione no hay? Esta bien lo que digo, no? Si cambiamos el tamaño de las secciones hay que modificar el PEB, verdad? Saludos! Gracias!
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Casi.. el comando lo entiende, pero rompe el archivo.. quedaría así:
ml /c /Cp /coff archivo.asm link /subsystem:windows /merge:.rdata=.text archivo.obj
No reduce mucho igual.. alguna herramienta que modifique los campos del PEB y redimensione no hay? Esta bien lo que digo, no? Si cambiamos el tamaño de las secciones hay que modificar el PEB, verdad? El mio funciona bien, es muy elemental, apenas emula RtlGetCurrentPeb y llama a MessageBox con la linea de comandos: 1024 bytes. ¿Que tamaño tiene tu ejecutable y como se rompe exactamente? link /merge:.data=.text /merge:.rdata=.text PD. El PEB es una estructura en memoria, el PE es el formato del binario.
|
|
« Última modificación: 9 Mayo 2014, 10:40 am por Eternal Idol »
|
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
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Imposible, no es posible eliminar ningun campo del PE. talvez ajustar el DOS stub pero apuesto que te ahorras solamente unos bytes, juntar todas las secciónes a formar una sola, Filealignment, etc habria que ver el ejecutable. En fin, lejos de recudir por medio de las caberas al contrario se puede incrementar.
Por cierto ¿Cuanto es el tamaño del ejecutable 40kb? ¿Adonde se piensa ejecutar? en un S.O de disquette?
|
|
« Última modificación: 9 Mayo 2014, 11:32 am por x64Core »
|
En línea
|
|
|
|
Vaagish
Desconectado
Mensajes: 875
|
Ayer @Lord Pei me sugirió que trate de quitar la sección .data, con eso se redujo 50Kb,, el único problema es que tengo la cadena "cmd.exe" que estoy tratando de colocarla dentro del código.. Ahora con unas modificaciones me dejo juntar la sección data (no rdata) y se redujo 1024 bytes. Un lujo! ¿Que tamaño tiene tu ejecutable y como se rompe exactamente? Por cierto ¿Cuanto es el tamaño del ejecutable 40kb? ¿Adonde se piensa ejecutar? en un S.O de disquette? Jeje,, no.. pero va a ir metido dentro de un .mp3 el código.. igual lo estoy achicando para ver hasta donde se puede dejar.. Ahora pesa 1,50 KB y lo puedo dejar en 1 si logro sacar ese "cmd.exe" y juntar el .rdata, igual creo que ahora se ajusta mas a lo que tiene de codigo real y el tamaño.. PD. El PEB es una estructura en memoria, el PE es el formato del binario. Si, verdad.. pifie yo. Imposible, no es posible eliminar ningun campo del PE. talvez ajustar el DOS stub pero apuesto que te ahorras solamente unos bytes, juntar todas las secciónes a formar una sola, Filealignment, etc habria que ver el ejecutable. En fin, lejos de recudir por medio de las caberas al contrario se puede incrementar. El Filealignament me puede servir.. hay una forma de hacerlo que no recuerdo.. igual como decis, quizas no se gane mucho.. Saludos!! Gracias!
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Ahora con unas modificaciones me dejo juntar la sección data (no rdata) y se redujo 1024 bytes. Un lujo!
Jeje,, no.. pero va a ir metido dentro de un .mp3 el código.. igual lo estoy achicando para ver hasta donde se puede dejar.. Ahora pesa 1,50 KB y lo puedo dejar en 1 si logro sacar ese "cmd.exe" y juntar el .rdata, igual creo que ahora se ajusta mas a lo que tiene de codigo real y el tamaño..
Si, ahi te deje la linea para juntar los 3 en 1. El Filealignament me puede servir.. hay una forma de hacerlo que no recuerdo.. igual como decis, quizas no se gane mucho.. Eso si me jodio el ejecutable, al menos en Windows 7 x64 no funciona (es /align:16 por ejemplo).
|
|
|
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
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
Ayer @Lord Pei me sugirió que trate de quitar la sección .data, con eso se redujo 50Kb,, el único problema es que tengo la cadena "cmd.exe" que estoy tratando de colocarla dentro del código..
Ahora con unas modificaciones me dejo juntar la sección data (no rdata) y se redujo 1024 bytes. Un lujo!
Jeje,, no.. pero va a ir metido dentro de un .mp3 el código.. igual lo estoy achicando para ver hasta donde se puede dejar.. Ahora pesa 1,50 KB y lo puedo dejar en 1 si logro sacar ese "cmd.exe" y juntar el .rdata, igual creo que ahora se ajusta mas a lo que tiene de codigo real y el tamaño.. Si, verdad.. pifie yo. El Filealignament me puede servir.. hay una forma de hacerlo que no recuerdo.. igual como decis, quizas no se gane mucho..
Saludos!! Gracias!
El código dentro de un .mp3 seria entonces la imagen PE o sólo el código? Sino pues apostaria a generar una shellcode. Además es la cadena "cmd.exe" constante? de ser así puede ir en rdata definiendola como constante así el compilador no la agregaria en .data. Si, ahi te deje la linea para juntar los 3 en 1.
Eso si me jodio el ejecutable, al menos en Windows 7 x64 no funciona (es /align:16 por ejemplo).
¿Cómo Filealignament pudo joder el ejecutable? No me referia a dejarlo a cero... se puede modificar si es mayor de 0x200.
|
|
|
En línea
|
|
|
|
|
|