Páginas: 1 [2] 3 4
|
 |
|
Autor
|
Tema: Practica: Modificando un PE a mano e inyectando codigo (Leído 1733 veces)
|
®®
Colaborador
Desconectado
Mensajes: 5.268
|
hay que seguir unas normas tienes que incrementar el numero de secciones en 1 y realinear el fichero.
|
|
|
|
|
En línea
|
|
|
|
|
Hendrix
|
Eso me imagine....lo realinee "manualmente", pero no pude....hay algun texto sobre eso???  Gracias Mek. 
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
®®
Colaborador
Desconectado
Mensajes: 5.268
|
si, el formato PE lo especifica todo. asi de cabeza si no recuedo mal tienes la sizeofrawdata tiene que ser divisible por el alginment, es decir tienes que redondear tirando para arriba, se calcula facilmente esto es multiplicar y dividir. el campo sizeofimage tb tienes que retocarlo y original+bytes nuevos y se alinea del mismo modo que el anterior.
|
|
|
|
|
En línea
|
|
|
|
|
Hendrix
|
El Aligment es el File Aligment, no???ya que con eso de las divisiones no logro sacar ninguna conclusión.....vi en un post lo siguiente: So, we have to act on that section of the file. There are three things I've got to describe so you get the point, beeing them fields on the Section Table entry we're at ( look above if you don't remember them )
- VirtualSize is the real size of the section, the number of bytes of that section.
- SizeOfRawData is the same that VirtualSize BUT rounded up to the alignment.
- Alignment ( this is placed in OptionalHeader, not in these fields in the specific section entry as it's same for all ) is a size which the file size in the PE Header and the SizeOfRawData field have to be divided by.
For example, let's imagine we have a section which has a VirtualSize of 1256h bytes, while the Alignment field in the Optional Header contains then number 200h. Then, we can easily know that the field in SizeOfRawData HAS to be 1400h. Why ? Because we have to round UP that 1256h to it's nearest value that is divisible by the Alignment, that is, 200h. Y mi sección .text de virtualsize tiene EF0h y el alignment es 1000h  PD: A ese texto lo saque de aqui: http://dl.njfiw.gov.cn/books/%BB%E3%B1%E0/Sorted_OEM/pe/Pe_infection2.txtUn Saludo Mek 
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
®®
Colaborador
Desconectado
Mensajes: 5.268
|
te lo dice en ese texto. mira poniendo el ejemplo de eso que me has copiado veras como se saca el numero: mov eax,1256h mov ecx,200h xor edx,edx div ecx xor edx,edx inc eax mul ecx en eax tendras el numero correcto. saludos.
|
|
|
|
|
En línea
|
|
|
|
|
|
|
Hendrix
|
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
dark_hat
Desconectado
Mensajes: 136
|
Mek, ya lo e echo...reparando las direcciones y todo eso a mano....pero lo tenia dentro de espacio sobrante de la sección .text...el problema es cuando intento crear mi sección con el tamaño que quiera, lo logro hacer todo, redimensiono las secciones para que las lea bien y todo y a mi parecer esta todo correcto, el icono es el mismo (por lo tanto la sección de resources esta bien) y todo correcto (a mi parecer), pero al darle doble click me dice que es una aplicaciones Win32 invalida....al pasarle el dumpbin no me marca ningun error al hacer lo siguiente: dumpbin /all archivomodificado.exe > info.txt A veces, antes me marcaba errores y me ponia todos los valores de eax, ebp y demás registros, pero esa vez me lo marco correcto y no me funcionó....Alguna sugerencia?? tengo que modificar algo mas??? Pensé que solo podria haber una sección en el ejecutable con los flags que indiquen que es codigo....pero no fue asi...luego modifique lo que dice: Size of code por la suma de mis 2 secciones de codigo y tampoco funcionó...y ya no se que mas hacer....  Un Saludo.  Prueba a ponerle más tamaño a la última sección y darle permisos de ejecución, escritura y lectura al principio de la sección más 24h pon los cuatro bytes 20h, 0h, 0h, 60h y en el principio de la sección más 10h está el tamaño de la sección, auméntalo a lo q qieras.
|
|
|
|
« Última modificación: 24 Julio 2007, 16:43 por dark_hat »
|
En línea
|
Eso que huele es un poco de incienso, eso marrón una tableta de turrón...
|
|
|
|
Hendrix
|
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
|
SERBice
|
gente, si vlvemos a la idea de poner el code al fnal del archivo, saltar a ese code y despues vovler al exe original no seria mejor?..... el exe es cargado hasta que se encuentran una serie de caracteres que indican el cierre del exe, como e chr$(0) en un string, asi pues, habria que encnotrar el cierre del archivo y moverlo despues de nuestro code ¿que les parece?
|
|
|
|
|
En línea
|
Estrenando firma (Gracias Artikhacker):  Asus M2N-SLI (nFoce 560SLI) - 4GB DDR2 OCz System Elite @800MHz - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition 680Mhz - HD SATA2 WD 7200rpm 500GB - Asus DRW-2014L1T 
|
|
|
|
Hendrix
|
gente, si vlvemos a la idea de poner el code al fnal del archivo, saltar a ese code y despues vovler al exe original no seria mejor?..... el exe es cargado hasta que se encuentran una serie de caracteres que indican el cierre del exe, como e chr$(0) en un string, asi pues, habria que encnotrar el cierre del archivo y moverlo despues de nuestro code ¿que les parece?
No se peude.....ya lo explique....la sección ejecutable "por defecto" es la .text 
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
|
SERBice
|
parece que no has entendid mi idea... ya qeu dices que al colocar el codigo "extra" pro asi llamarlo al final del exe y al salta r ala posicion de dicho code, da error de memoria porque el exe se carga hasta el final del binario msimo en memoria ignorando loq eu se le adose, la idea es; encontrar el grupo de caracteres que indica el cierre del exe y moverlo al final, detras d nuestro code. en al sección text sltar a nuestro code y lueg retornar al punto desde el qe saltamos..... lo hago sonar facil, se que n lo es, pero creo que estoy acertado en el concepto.
|
|
|
|
|
En línea
|
Estrenando firma (Gracias Artikhacker):  Asus M2N-SLI (nFoce 560SLI) - 4GB DDR2 OCz System Elite @800MHz - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition 680Mhz - HD SATA2 WD 7200rpm 500GB - Asus DRW-2014L1T 
|
|
|
|
Hendrix
|
no hay tal caracter de final de archivo....e la cabecera se define el tamaño que tiene la sección....y al ejecutarse ya se sabe que el codigo a ejecutar va desde XXXX a YYYY Un Saludo. 
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
|
Hendrix
|
Bueno...quiero comunicar que ya lo e conseguido "a medias"..... Lo e conseguido todo excepto que la IAT se me a dañado (no me explico como, todo esta realojado correctamente :S). Aparte, al meter el ejecutable en el olly me dice que no existe la Dll (trabajo sobre un ejecutable en VB y al no tener la Dll en VB me da ese pantallazo. No sale del olly (no se termina), asi que me voy al entry point y veo que no hay IAT. Otra sorpresa es que dentro del Olly hay literalmente todo el ejecutable, consigo llegar hasta la posicion virtual 0040000, que contiene el tipico MZ....  Alguna solución para ello??? PD: E de decir que lo estoy haciendo todo manual....nada de ensamblador ni C... Un Saludo. 
|
|
|
|
|
En línea
|
Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer
|
|
|
®®
Colaborador
Desconectado
Mensajes: 5.268
|
pero es extrictamente necesario que añadas otra sección? si no añade el codigo al final de la ultima sección. dices que has jodiod la IAT.... ¿que estas fent? ya me estoyt liando hasta yo jeje., no entiendo mucho lo que te pasa ahora mismo, despues de la siesta lo leere mejor.
saludos.
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: 1 [2] 3 4
|
|
|
|