PE mas PEqueños..

Iniciado por Vaagish, 7 Mayo 2014, 21:10 PM

0 Miembros y 3 Visitantes están viendo este tema.

x64core

Cita de: Eternal Idol en  9 Mayo 2014, 22:34 PM
y en principio se usa el mismo (linker.exe).
Pues eso mismo pensaba ya que alveces suelo usar el linker que viene con el WDK pero en VS 2012 no me permite compilar con /align:4...

PD. Desde el IDE no he probado desde linea de comandos ^^

Vaagish

CitarPuedes colocar la cadena "cmd.exe" incluso en .text, siempre y cuando no escribas en ella, y se ejecute, por que genera un bad opcode.

En masm no hay sección ".text", creo que el equivalente seria le sección ".code",, igual lo que decis es correcto, aunque no te lo permite en una sola linea, quedaría la etiqueta primero y abajo el db "valor", 0. Lo probé, pero al final, usando merge y uniendo todas las partes en una sola, el tamaño no cambia.. por eso creo que no lo puedo reducir mas.. son 1.376 bytes, y tengo 4 estructuras, 5 funciones y algunas instrucciones.. no esta tan mal..

CitarEn el entorno que mencione si, no me funciona.
En conclusión para que sea compatible con x64, no usar Align?  :rolleyes:

Temas resuelto!

Gracias Genios! Saludos!

Eternal Idol

Cita de: Vaagish en  9 Mayo 2014, 23:18 PMEn conclusión para que sea compatible con x64, no usar Align?  :rolleyes:

Si, o siempre usar un ejecutable nativo  ::)
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

cpu2

Ya veo que das el tema por resuleto, asi que no le dare mucha mas cuerda.

No entiendo eso de "no te lo permite en una sola linea", yo puedo añadir los bytes que quiera en cualquier parte de .text ".code".

Al no utilizar .data ami me bajo algo de peso, pero no mucho, igual que las estructuras tambien puedes ponerlas en ".code", normalmente todos esos datos se ponen al final del code para que estos no se ejecuten.

Tambien te recuerdo de que yo creo el binario con el formato ELF, cosa que a este le puedes modificar todo, hasta reducir el tamaño de las secciones. Pero como trata de Windows esto no viene al caso.

Un saludo.

Vaagish

CitarNo entiendo eso de "no te lo permite en una sola linea", yo puedo añadir los bytes que quiera en cualquier parte de .text ".code".

En realidad es un tema de sintaxis.. ej:

Código (asm) [Seleccionar]
cadena: db "cmd.exe", 0 -> db syntax error

Pero si lo hago asi:

Código (asm) [Seleccionar]
cadena:
     db "cmd.exe", 0


No es porque no se pueda.. es un tema de sintaxis nomas..
Ya corrobore que los db que quedan en el código son las estructuras,, así que no se puede reducir mas, y si se puede serán unos bytes.. no me caliento mas jaja

Me parece que el formato ELF es menos exigente con el formato.. en win, un cambio inesperado y se pudre el PE..  :rolleyes: