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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  PE mas PEqueños..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: PE mas PEqueños..  (Leído 12,948 veces)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: PE mas PEqueños..
« Respuesta #10 en: 9 Mayo 2014, 21:07 pm »

Citar
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.

Vos decís de meter los opcodes dentro del mp3? Se podria, no? Igual quiero tener un ejecutable "a mano" por las dudas,, para poder hacer otras cosas con el.. y siempre lo podría pasar a opcode..
Mal yo: (ando distraído hoy) la sección que me deja juntar es la .rdata y no .data como dije hoy.. la cadena es constante si.. pensé en hacer algo así:

.cadena:
       db "cmd.exe", 0

Citar
¿Cómo Filealignament pudo joder el ejecutable? No me referia a dejarlo a cero... se puede modificar si es mayor de 0x200.
Por ahi lei a otros que tenian el mismo problema,, a mi con align:16 me lo redujo 10 bytes, no es mucho pero suma.. y con align:4 lo redujo 12 bytes.. me gustaria mantener la portabilidad.. asi que si no funciona en win7 x64, no lo uso...

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: PE mas PEqueños..
« Respuesta #11 en: 9 Mayo 2014, 21:08 pm »

Con /align:512:

eax=77452070 ebx=7745206c ecx=00000001 edx=7745206c esi=7efde000 edi=7efdd000
eip=77395321 esp=0018fcb8 ebp=0018fd00 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!_LdrpInitialize+0x73:
77395321 e8ab1c0000      call    ntdll!LdrpInitializeProcess (77396fd1)

0:000> p
eax=c0000018 ebx=7745206c ecx=761b4fc4 edx=00000000 esi=7efde000 edi=7efdd000
eip=77395326 esp=0018fcc0 ebp=0018fd00 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246

0:000> !error c0000018
Error code: (NTSTATUS) 0xc0000018 (3221225496) - {Conflicting Address Range}  The specified address range conflicts with the address space.

Viene de ntdll!LdrpWx86FormatVirtualImage, a su vez de ntdll!Wow64LdrpWx86FormatVirtualImage y por ntdll!LdrpWx86DetectSectionOverlap. Es un programa de 32 bits en un Windows 7 de x64 ...


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 Desconectado

Mensajes: 875



Ver Perfil
Re: PE mas PEqueños..
« Respuesta #12 en: 9 Mayo 2014, 21:15 pm »

Citar
s un programa de 32 bits en un Windows 7 de x64 ...
Pero debería funcionar.., igual no entiendo.. con align 512 no queda mas grande??

Citar
Vos decís de meter los opcodes dentro del mp3? Se podria, no?

Me cite a mi mismo para preguntar.. igual tendria que tener la cabecera MZ y todo lo correspondiente a un ejecutable en opcodes,, seria como la imagen al final...  :¬¬

Salute!
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: PE mas PEqueños..
« Respuesta #13 en: 9 Mayo 2014, 21:24 pm »

Vos decís de meter los opcodes dentro del mp3? Se podria, no? Igual quiero tener un ejecutable "a mano" por las dudas,, para poder hacer otras cosas con el.. y siempre lo podría pasar a opcode..
Mal yo: (ando distraído hoy) la sección que me deja juntar es la .rdata y no .data como dije hoy.. la cadena es constante si.. pensé en hacer algo así:

.cadena:
       db "cmd.exe", 0
Por ahi lei a otros que tenian el mismo problema,, a mi con align:16 me lo redujo 10 bytes, no es mucho pero suma.. y con align:4 lo redujo 12 bytes.. me gustaria mantener la portabilidad.. asi que si no funciona en win7 x64, no lo uso...

Saludos!
Pues habria que ver cual es tu idea si esperas que los opcodes sean ejecutados como instrucciones habria que pensarlo :)

Con /align:512:

eax=77452070 ebx=7745206c ecx=00000001 edx=7745206c esi=7efde000 edi=7efdd000
eip=77395321 esp=0018fcb8 ebp=0018fd00 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!_LdrpInitialize+0x73:
77395321 e8ab1c0000      call    ntdll!LdrpInitializeProcess (77396fd1)

0:000> p
eax=c0000018 ebx=7745206c ecx=761b4fc4 edx=00000000 esi=7efde000 edi=7efdd000
eip=77395326 esp=0018fcc0 ebp=0018fd00 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246

0:000> !error c0000018
Error code: (NTSTATUS) 0xc0000018 (3221225496) - {Conflicting Address Range}  The specified address range conflicts with the address space.

Viene de ntdll!LdrpWx86FormatVirtualImage, a su vez de ntdll!Wow64LdrpWx86FormatVirtualImage y por ntdll!LdrpWx86DetectSectionOverlap. Es un programa de 32 bits en un Windows 7 de x64 ...

Pero /align establece SectionAlignment no FileAlignment.

-

El SectionAlignment no altera absolutamente en nada la imagen PE respecto al tamaño este tiene otra relación sobre la carga de la imagen.
Me refiero a FileAlignment ya que algunos compiladores agregan un valor mayor a 0x200 de ser así es posible modificarlo sino problemas de alineamiento
de datos como suele pasar en x64.


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: PE mas PEqueños..
« Respuesta #14 en: 9 Mayo 2014, 21:41 pm »

Ah, me confundi con el otro alignment entonces (en realidad nunca use el que mencionas vos), pero si afecta al tamaño, con /align:4 mi misero ejecutable tiene 592 bytes.
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 Desconectado

Mensajes: 875



Ver Perfil
Re: PE mas PEqueños..
« Respuesta #15 en: 9 Mayo 2014, 21:53 pm »

Citar
con /align:4 mi misero ejecutable tiene 592 bytes.
Pero lo estropea, no?

Yo ahora lo deje en 1.34Kb, y creo que no le puedo ganar mucho mas.. aun hay mucho db 00 .. pero tengo declaradas 4 estructuras.. calculo que es ese el espacio.. o es un bolazo eso?

Citar
.data?
   _Wsadata       WSADATA <>
   _Sockaddrin      sockaddr_in <>
   _Processinfo   PROCESS_INFORMATION <>
   _StartupinfoA   STARTUPINFOA <>
En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: PE mas PEqueños..
« Respuesta #16 en: 9 Mayo 2014, 21:59 pm »

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

Código
  1. .section .text
  2. .globl _start
  3.  
  4. .cadena: db "cmd.exe", 0
  5.  
  6. _start:
  7.  
  8. // code

Asi te puedes ahorrar alguna section, eso se usa para las shellcodes.

Un saludo.
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: PE mas PEqueños..
« Respuesta #17 en: 9 Mayo 2014, 22:24 pm »

Pero lo estropea, no?

En el entorno que mencione si, no me funciona.

Yo ahora lo deje en 1.34Kb, y creo que no le puedo ganar mucho mas.. aun hay mucho db 00 .. pero tengo declaradas 4 estructuras.. calculo que es ese el espacio.. o es un bolazo eso?

Depende, investiga con dumpbins (/headers, /all, /disasm, etc.) como va quedando tu ejecutable.
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 Desconectado

Mensajes: 1.908


Ver Perfil
Re: PE mas PEqueños..
« Respuesta #18 en: 9 Mayo 2014, 22:29 pm »

Ah, me confundi con el otro alignment entonces (en realidad nunca use el que mencionas vos), pero si afecta al tamaño, con /align:4 mi misero ejecutable tiene 592 bytes.
Esta bien, estaba viendo eso de SectionAlignment ya que teoricamente y logicamente no deberia afectar el tamaño de la imagen y
noté que es afectada ya que FileAlignment no puede ser mayor a SectionAlignment por obvias razones y por eso FileAlignment es
alterado también. Además estaba en VC++ y nisiquiera me deja compilar con Align:4 lo min es Align:16... link.exe... :)

Por cierto, lo min valido en Winx64 fue de 1024 bytes alguien da menos ^^
Estoy viendo si lo hago manualmente puede que talvez reduzca algunos bytes...
« Última modificación: 9 Mayo 2014, 22:33 pm por x64Core » 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: PE mas PEqueños..
« Respuesta #19 en: 9 Mayo 2014, 22:34 pm »

Claro, aunque en realidad todos estos son parametros para el enlazador - el/los obj tienen todas las secciones y el enlazador puede mezclarlas por ej. - y en principio se usa el mismo (linker.exe).
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
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pequeños problema con .asf
Multimedia
mundo 3 3,068 Último mensaje 15 Enero 2004, 15:49 pm
por Songoku
[Recomendado] Pequeños trucos en PHP / Scripts php-mysql / POO « 1 2 3 4 »
PHP
Ertai 35 105,316 Último mensaje 10 Diciembre 2013, 20:53 pm
por :ohk<any>
Pequeños detalles
Programación Visual Basic
3k1n0x 3 2,775 Último mensaje 4 Noviembre 2007, 14:57 pm
por 3k1n0x
Avatares de usuario más pequeños « 1 2 3 4 »
Sugerencias y dudas sobre el Foro
NirozMe|on 30 12,216 Último mensaje 13 Septiembre 2010, 22:21 pm
por Komodo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines