Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - magicboiz

#1
una startup nueva de cloud que he conocido en Madrid es Tu CPD Virtual: http://www.tucpdvirtual.es

Me gusta porque los utilizo a través del API Openstack que tienen abierto a clientes, lo cual permite montar integración continua (CI), en pago por uso (tarifican por horas de uso), con Paypal, y las VPS son todas con discos SSD.
Están en Madrid y las IP públicas que asignan son de MAD/ESP.
#2
Desarrollo Web / Re: [Recomendando] Hosting 2016
19 Septiembre 2016, 12:09 PM
Empresa: http://www.tucpdvirtual.es
País: España
Servicios: Hosting SSD, servidor VPS SSD y Datacenter Virtual basado en Openstack
Precios: buenos
Ventajas: todo SSD, IP fija de Madrid/ESP, pago por uso con Paypal, datacenter en Madrid.
Desventajas: nada reseñable
Otros datos relevantes: ofrecen el servicio API Openstack que permite automatizar cosas como integración contínua.
#3
Cita de: x64Core en 20 Enero 2014, 22:02 PM
Enviame el archivo el cual queres aumentarle la sección lo voy a reprogramar con mi applicación.


te he enviado un mensaje privado.
#4
x64Core

gracias por tu respuesta. Estoy intentando añadir el espacio al final de la sección .text, por lo que el código entiendo que no debiera presentar problemas no? ¿O me podría encontrar código ejecutable en las secciones .data/.idata/.rsc/etc?

Mi objetivo es simplemente hacer un hueco grande al final de la sección .text.

¿Cómo lo ves?


Cita de: x64Core en 17 Enero 2014, 21:09 PM
Para expandir la sección de codigo ( .text normalmente ) que es la primera sección además, y que la imagen del ejecutable quede totalmente funcional debes de incrementar a todos campos en el PE header,instrucciones que hacen referencia a las posteriores secciones de la sección objectivo el valor a incrementar a la sección alineado por SectionAlignement. Un simple ejemplo, Tenemos una imagen PE que contiene dos secciones ( .text y .data ):



        Virtual size    Virtual address     Raw size    Raw Offset
.text   0x1000          0x1000              0x1000      0x400
.data   0x1000          0x2000              0x1000      0x1400


Así, si incrementados 0x1000 bytes a la sección de codigo (.text) debes actualizar todas las secciones posteriores a esta, en este caso solo es .data.
de lo contrario se estaria generando una malformacion en la estructura ya que la primera sección tendria un nuevo tamaño de 0x2000 bytes y la sección .data se supondria que estaria cargandose desde la direccion 0x2000 lo cual es incorrecto. así debemos actualizar el Campo Virtual Address de la sección .data ( 0x2000 ) y sumarle ese valor alineado ( 0x1000 ) quedando como resultado 0x3000. Con eso actualizamos los IMAGE_SECTION_HEADER's pero en
la imagen del PE no solo se deben actualizar esas estructuras sino también DATA_DIRECTORIES->VirtualAddress, y todas las referencias que se hagan en la sección objetivo a las posteriores secciónes, por ejemplo si en la sección .text existe un instruccion como esta:

PUSH dword ptr [0x2000]

Lo cual "pushearia" los primeros cuatro bytes de la sección .data entonces tambíen se tendria que actualizar esta instrucción y todas las instrucciones que hacen referencia como dije antes. Realmente esto no es una tarea facil ya que se require una reprogramación total de la imagen y analisis del codigo tomando en cuenta además punteros a punteros:

MOV eax, dword ptr [0x2000] ; 0x2000 = 0x2000
XXX Reg,dword ptr [eax+Off]
XXX Reg,dword ptr [eax+Off]
....

Lo que podria ayudar es si la imagen PE tiene tabla de relocalización asi de evita el analisis de codigo en busca de referencias a las posteriores secciones,
así tomando la tabla de relocalización y actualizandola. A pesar de eso no realmente asegura que se obtendra una imagen totalmente funcional ya que
si el programa no esta bien estructura y por alguna razon toma en cuenta cierto campos de la imagen del PE que han sido modificados entonces tambien se tendrian que actualizar. A pesar de todo eso puedo decir que es posible.












#5
Hola Karmany

una pregunta, tengo un binario(.exe) que quiero modificar, en concreto añadir espacio en la sección .text (code), pero Add PE Bytes me dice que no se puede añadir espacio.....

¿Pur qué?

Gracias majo
#6
Hola "The Swash"

soy un novatillo en esto. El caso es que me estoy haciendo un script en python para "expandir" la sección .text, y siguiendo tus pasos (que seguramente no los haya seguido al 100%) no me funciona.

El problema que me encuentro, es que los DATA_DIRECTORIES que hay dentro del PE, hacen referencia a distintas secciones (.data, .idata, .rss, etc) que claro, al verse desplazadas por el incremento de .text, pues cambian sus direcciones. Eso por no hablar de los jodido que es navegar por dentro de los resource directories, sus subdirectorios....

¿Qué pista me das para resolver este tema de los DATA_DIRECTORIES y las refencias a las secciones?


gracias majo.