Autor
|
Tema: El codigo misterioso ...o es que no lo se ver (Leído 4,741 veces)
|
|
|
_Enko
|
nada te impide tener codigo antes del EP..... section '.data' ;variables
section '.code' proc1; proc2; proc3;
EntryPoint: push ebp mov ebp, esp call proc1; call proc2; call proc3; pop ebp ret
o bien, en section '.data' en vez de haber variables, puede haber codigo
|
|
« Última modificación: 12 Septiembre 2011, 15:28 pm por _Enko »
|
En línea
|
|
|
|
MCKSys Argentina
|
Pero para ejecutar en .data (o cualquier otra), deberas modificar el PE header, para que la sección tenga permisos de ejecucion, o bien, darselos usando VirtualProtect...
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
_Enko
|
No necesariamente. Depende de: El compilador (Si coloca o no coloca el flag NX, No eXecute) El SO (segun la version de windows, algunas no le prestan atencion) section '.data' redeable writeable xor eax, eax ret
Si se compila sin el flag NX, el codigo se ejecuta igualmente en winxp y win7 probado. http://en.wikipedia.org/wiki/NX_bit
|
|
« Última modificación: 12 Septiembre 2011, 17:22 pm por _Enko »
|
En línea
|
|
|
|
Иōҳ
Desconectado
Mensajes: 563
|
Pero para ejecutar en .data (o cualquier otra), deberas modificar el PE header, para que la sección tenga permisos de ejecucion, o bien, darselos usando VirtualProtect...
Es que Fly tiene mente de cracker por eso de modificar el PE, jeje... No necesariamente. Depende de: El compilador (Si coloca o no coloca el flag NX, No eXecute) El SO (segun la version de windows, algunas no le prestan atencion) Exacto, aunque también se lo puedes dar a la hora de linkear, en los comandos que usas para tal acción, almenos es lo que yo hago :B
|
|
|
En línea
|
|
|
|
Tinkipinki
Desconectado
Mensajes: 242
|
Uy.. vosotros vais unas cuantas clases mas adelantadas que yo y no hay quien os entienda jeje.. Igual no he sabido explicarme, os cuento: Si abrimos el notepad con un editor hexadecimal vemos que los offset van del 00000000 al 000111F0. Si lo abrimos con el Olly vemos que analiza el codigo de 01001000 offset 00000400 a 01008FFF offset 00007BFA. Lo que me pregunto es porque no aparece en el Olly el codigo que va del offset 00000000 a 00000400? Saludos
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
El tema es que cuando cargas un EXE en Olly, lo estas viendo mapeado en memoria, lo cual es muy diferente a como lo ves en el disco (editor Hexa).
Te recomiendo seguir (o empezar) con los cursos de Ricardo Narvaja.
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Иōҳ
Desconectado
Mensajes: 563
|
Uy.. vosotros vais unas cuantas clases mas adelantadas que yo y no hay quien os entienda jeje.. Igual no he sabido explicarme, os cuento: Si abrimos el notepad con un editor hexadecimal vemos que los offset van del 00000000 al 000111F0. Si lo abrimos con el Olly vemos que analiza el codigo de 01001000 offset 00000400 a 01008FFF offset 00007BFA. Lo que me pregunto es porque no aparece en el Olly el codigo que va del offset 00000000 a 00000400? Saludos Ese es un Crackme que tengo a la mano, je es un DELPHI, ahí te enseño el OEP. Luego te vas a la ventana Memory y vez esto Memory map, item 19 Address= 00400000 Size=00001000 (4096.) Owner=Nox_Dump 00400000 (itself) Section= Contains=PE header Type=Imag 01001002 Access=R Initial access=RWE Que es donde empieza el proggie. Sí vemos el DUMP vez esto: 00400000 4D 5A ASCII "MZ" ; DOS EXE Signature La ImagenBase es está (no la muestro en la img que puse) 00400134 00004000 DD 00400000 ; ImageBase = 400000Así que si restamos la addy donde empieza el proggie (el header) 00400000 - ImageBase = Offset en disco (la que tú vez en tu HexEditor) Reemplazamos: 00400000 - 00400000 = 0, que sería el Offset AQUÍ, te lo explican mejor, está es la segunda vez que te doy el link, leelo, que parece que no tienes ganas de hacerlo, yo tampocó lo tendré al no leer tus próximos post.http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2008_taller_de_formato_pe_by_ferchu-t208278.0.htmlAdvertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
|
|
« Última modificación: 12 Septiembre 2011, 21:44 pm por Иōҳ »
|
En línea
|
|
|
|
Tinkipinki
Desconectado
Mensajes: 242
|
Ante todo gracias por buestras respuestas y disculparme si en cualquier momento alguien ha pensado en que no tenia el suficiente interes en asimilar lo que me explicais. Escribir es complicado y a veces lo que uno intenta transmitir puede no ser interpretado como uno quisiera. AQUÍ, te lo explican mejor, está es la segunda vez que te doy el link, leelo, que parece que no tienes ganas de hacerlo, yo tampocó lo tendré al no leer tus próximos post. Иōҳ, la razon de este post surgio precisamente a la lectura del tutorial de Ferchu antes de que tu publicaras el primer post donde pone los ejemplos con el editor hexadecimal para saber encontrar las diferentes cabeceras y entender un poco la estructura de un EXE. No comentarte nada en la referencia al lik en tu post ha estado un acto reflejo para que tu respuesta tuviera la importancia que debia tener, tu me pasas la informacion y yo te agradezco el post. Yo creo que hubiera quedado muy mal que que hubiese contestado "Es que ya lo estaba leyendo antes de que tu me lo pasaras" o cualquier otra respuesta que diera a entender que ya lo conocia, para mi, una respuesta como esta queda feo. Gracias por tu ultimo post. Иōҳ, _Enko, MCKSys Argentina os pido mis mas humildes disculpas por este entuerto. Saludos
|
|
|
En línea
|
|
|
|
|
|