Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Danyfirex en 6 Agosto 2012, 18:49 pm



Título: Valor CFF explorer?
Publicado por: Danyfirex en 6 Agosto 2012, 18:49 pm
hola amigos, vengo por aqui con esta duda  :rolleyes: a ver si alguien me explica de donde sale ese valor que subrayo en rojo.

me estoy iniciando en el tema de la PE.

(http://i.imgur.com/O9TOc.png)

Si no me equivoco ese parte pasandola a decimal me devuelve el offset donde inicia esa sección pero no se como obtenerla.

Saludos espero su me aclaren esa duda.


Título: Re: Valor CFF explorer?
Publicado por: MCKSys Argentina en 6 Agosto 2012, 20:54 pm
Al parecer, ese valor es solo el nombre de la sección. No DEBERIA indicar nada, pero depende del EXE (si esta protegido, quizas se use ese valor para algo...)

Saludos!


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 6 Agosto 2012, 22:13 pm
Al parecer, ese valor es solo el nombre de la sección. No DEBERIA indicar nada, pero depende del EXE (si esta protegido, quizas se use ese valor para algo...)

Saludos!

No no esta protegido es solo un exe que yo hice para probar.

y cuando agarro ese valor y lo paso a decimal me devuelve el offset donde comienza
.text en este caso el punto. realmente quiere saber como saco ese valor que esta subrayado en rojo a partir de otros parametros. no se si con esos que se muestran ahi en la imagen se puede.


Título: Re: Valor CFF explorer?
Publicado por: MCKSys Argentina en 6 Agosto 2012, 22:48 pm
Vas a tener que revisar el formate PE: http://mirror.sweon.net/madchat/vxdevl/papers/winsys/pefile/pefile.htm

Saludos!


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 6 Agosto 2012, 23:28 pm
Vas a tener que revisar el formate PE: http://mirror.sweon.net/madchat/vxdevl/papers/winsys/pefile/pefile.htm

Saludos!

ya tengo unos dias leyendo la versión en español https://www.box.com/shared/4156t5rfv8tr5v4bgo19
 que anda en el foro, pero aun así no  me queda claro eso que expongo en el tema.


Título: Re: Valor CFF explorer?
Publicado por: apuromafo CLS en 7 Agosto 2012, 02:58 am
lo que tienes pintado es solo el nombre, por el tema de tamaño de reloc, mayor a cero, es la sección de los reloc :D

saludos Apuromafo


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 7 Agosto 2012, 15:21 pm
lo que tienes pintado es solo el nombre, por el tema de tamaño de reloc, mayor a cero, es la sección de los reloc :D

saludos Apuromafo

esto no me aclara nada.  :rolleyes:


Título: Re: Valor CFF explorer?
Publicado por: karmany en 7 Agosto 2012, 16:22 pm
hola amigos, vengo por aqui con esta duda  :rolleyes: a ver si alguien me explica de donde sale ese valor que subrayo en rojo.

Saludos espero su me aclaren esa duda.


Ese valor es la RVA (Dirección Virtual Relativa) de donde se encuentra el valor. En tu caso 1B0 te dará justo la dirección de la cadena de texto .txt, que es el nombre de la sección.

Puedes usar el programa File Location Calculator (http://foro.elhacker.net/ingenieria_inversa/file_location_calculator_v032_por_karmany-t262979.0.html) que te mostrará los bytes de una determinada dirección.


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 7 Agosto 2012, 18:14 pm
Ese valor es la RVA (Dirección Virtual Relativa) de donde se encuentra el valor. En tu caso 1B0 te dará justo la dirección de la cadena de texto .txt, que es el nombre de la sección.

Puedes usar el programa File Location Calculator (http://foro.elhacker.net/ingenieria_inversa/file_location_calculator_v032_por_karmany-t262979.0.html) que te mostrará los bytes de una determinada dirección.

gracias por tu respuesta karmany, me aclaraste un poco.

para calcular el RVA es (offset-PointertoRawdata)+ virtualaddress.
pero como lo calculo si no conozco mi offset?

gracias voy a mirar el Calculador que me pasaste.


Título: Re: Valor CFF explorer?
Publicado por: apuromafo CLS en 7 Agosto 2012, 18:45 pm
jaja, bueno me baje el cff explorer y confirmo lo que estas haciendo, cuando pulsas la sección .text aparece un numero,

cuando VAS a la opcion "hex editor "  y vas a ese offset Apuntará en el nombre de esa sección,

me explico tengo un exe con muchas seccines una tiene nombre
.text al pulsar este me aparece  178, cuando voy al hex editor voy al offset 178h (h por hexadecimal), y aparece el punto de .text osea donde comienza el nombre de esa sección
ahora si uso ollydbg, y voy a la imagezise en la ventana dump y coloco special PE header y voy a ver el encabezado bajo y encuentro en la direccion
Citar
00400178   2E 74 65 78 >ASCII ".text"        ; SECTION
00400180   DCC20600     DD 0006C2DC          ;  VirtualSize = 6C2DC (443100.)
00400184   00100000     DD 00001000          ;  VirtualAddress = 1000
00400188   00C40600     DD 0006C400          ;  SizeOfRawData = 6C400 (443392.)
0040018C   00040000     DD 00000400          ;  PointerToRawData = 400
00400190   00000000     DD 00000000          ;  PointerToRelocations = 0
00400194   00000000     DD 00000000          ;  PointerToLineNumbers = 0
00400198   0000         DW 0000              ;  NumberOfRelocations = 0
0040019A   0000         DW 0000              ;  NumberOfLineNumbers = 0
0040019C   60005060     DD 60500060          ;  Characteristics = CODE|INITIALIZED_DATA|ALIGN_16|EXECUTE|READ


no se si eso quieres comparar? o saber

insisto lo primero del PE header, cuando se ven los datos
es OPTIONAL HEADER(pensando que usas CFF( imagebase), luego ves la sección que estas mirando, y sumas o comparas en el depurador
imagebase+el valor que te dicen... y comparas con al
ahora usando la tool que te comenta karmany si colocas Offset (el numero que ves ahi arriba) , en mi caso es 178, y colocas hex verás lo mismo  pero sin traducir de ollydbg( los bytes en orden de la sección en su formato PE


supongo que eso querias confirmar?

ya antes karmany te dijo En tu caso 1B0 te dará justo la dirección de la cadena de texto .txt,


respecto a los reloc, mi sección .text no usa relocaciones, pero tu sección si los usa,

respecto a terminar el tema de una vez,   estos datos que estas viendo son del PEHEADER, y se cargan de PE imagesize, luego le sumas ese offset y ahí está, pero si quieres editar algun valor, por algo crearon con tools hexadecimal, herramientas que ademas tienen soporte para confirmar los tamaños (no agregues o quites mas tamaño del que tiene establecido) etc


bueno bro, espero sigas explorando y mirando el cff explorer, pero con ejemplos que tu conozcas sobre tutoriales de PE header


saludos Apuromafo
pd:mi exe era el kg 2 de crackme 6 de flamer aleatorios10.exe el que confirmaba los datos



Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 7 Agosto 2012, 18:56 pm
gracias por la explicación apuromafo practicamente lo que quiero hacer es lo uqe hace la tool de karmany.

pero no entiend eso de la suma

para calcular  el valor 1B0 lo hago a partir de los parametros que me muesta el cffexplorer?

RVA es (offset-PointertoRawdata)+ virtualaddress.

cual es el valor del offset?

es 00001000?

porque ahi en el cffexplorer lo ve en
virtualaddress= 00001000 y en Rae Address=00001000
uno de eso seria el valor del offset para hacer la formula de RVA?





Título: Re: Valor CFF explorer?
Publicado por: apuromafo CLS en 7 Agosto 2012, 19:29 pm
como se hace?, pues por algo crearon el pe header, por eso fly te comento lo que te decian, la tool te ayudara a entenderlo cuando lo nconozcas,

http://foro.elhacker.net/empty-t361927.0.html
http://foro.elhacker.net/empty-t346454.0.html
http://foro.elhacker.net/empty-t352495.0.html
http://foro.elhacker.net/empty-t356332.0.html

un script para offset
http://foro.elhacker.net/empty-t340094.0.html
cff explorer?
http://foro.elhacker.net/empty-t335659.0.html
ollydbg2
http://foro.elhacker.net/empty-t315911.0.html

temas en el foro
http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_en_construccionsecciones_en_archivos_pe-t362515.0.html



pues realmente re-crear herramientas de edición PE, es complejo ,
por otro lado no entiendes la suma porque no conoces el encabezado PE, valor del offset? es 1B0, pero linealmente dicen que el PE es 00 los primeros valores serian el magic (pe header)...luego asi suma y sigue...
hay un puntero donde comienza el pe, y ahi comienza enlistar las secciones,
por otro lado digamos que cff explorer va de mas a menos (magic )...hasta luego ver la cantidad de secciones, luego imagesize y luego confirma cada puntero, ahora porque creo esa opcion cff?,es por si alguien quiere cambiarle el nombre de forma hexadecimal, y no necesariamente mediante tools (desde ahi renombrar y listo)
no es para otra cosa

por otro lado la suma , digamos que el lugar dependerá de que herramienta uses, usando la tool de karmany solo colocas el 1B0 y hex, nada mas confirmas que seria la imagebase+offset

respecto a cff explorer seria 1B0h en el editor hexadecimal, respecto a ollydbg seria  go to 400000 y luego special PE header y luego go to expresion 4001B0
por ejemplo


00400184   00100000     DD 00001000          ;  VirtualAddress = 1000
00400188   00C40600     DD 0006C400          ;  SizeOfRawData = 6C400 (443392.)
0040018C   00040000     DD 00000400          ;  PointerToRawData = 400

sabemos que la imagebase es 400000 si quiero saber el tamaño  en ollydbg veo con alt+m
Citar
Address    Size       Owner      Section    Contains      Type   Access    Initial   Mapped as
00400000   00001000   aleatori              PE header     Imag   R         RWE
00401000   0006D000   aleatori   .text      SFX,code      Imag   R         RWE
0046E000   00001000   aleatori   .data      data          Imag   R         RWE
0046F000   00005000   aleatori   .rdata                   Imag   R         RWE
00474000   00007000   aleatori   .bss                     Imag   R         RWE
0047B000   00001000   aleatori   .idata     imports       Imag   R         RWE
0047C000   00001000   aleatori   /4                       Imag   R         RWE
0047D000   00001000   aleatori   /19                      Imag   R         RWE
0047E000   00004000   aleatori   /35                      Imag   R         RWE
00482000   00001000   aleatori   /47                      Imag   R         RWE
00483000   00001000   aleatori   /61                      Imag   R         RWE
00484000   00001000   aleatori   /73                      Imag   R         RWE
00485000   00001000   aleatori   /86                      Imag   R         RWE
00486000   00002000   aleatori   /97                      Imag   R         RWE
00488000   00001000   aleatori   /108                     Imag   R         RWE


realmente es tema de ir paso a paso viendo herramientas como los que explican en los tutoriales de izelion y luego ir explorando poco a poco a traves de lo antes escrito sobre el formato PE, o encabezado pe y asi suma y sigue

es un largo paso, que muchos crackers normalmente dejan en manos de las herramientas que ya existen :D
saludos Apuromafo


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 7 Agosto 2012, 19:42 pm
muchas gracias tus rápidas respuesta.

lo que yo quiero hacer es conocer el offset en mi archivo de la parte de la PE que yo seleccione como lo hace Cffexplorer en este caso mostrándome  1B0. es que estoy haciendo una herramienta, pero quiero obtener el offset en algun exe. a pero no se si lo puedo obtener a partir de los parámetros de la cabecera.



una captura de loo que llevo.
(http://i.imgur.com/JgUxo.png)
perdon por liarme  y liarte.

hay alguna forma de obtener la ubicación 1B0 a partir de parámetros mostrados en la PE.


gracias por todo el material que me anexas me los voy a leer.


Título: Re: Valor CFF explorer?
Publicado por: apuromafo CLS en 7 Agosto 2012, 23:59 pm
sip, donde leiste el puntero del nombre, pero creeme, no sera nada facil, si no te complementas con la ing inversa sobre todo en el depurado..y comparando los detalles

lo que encuentro complicado es lo que viene...digamos que logras todos los detalles, y todas las secciones, lo que sigue es como el proyecto de sirpe....
http://guandedio.no-ip.org/sirpe.html

saludos Apuromafo


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 8 Agosto 2012, 00:21 am
sip, donde leiste el puntero del nombre, pero creeme, no sera nada facil, si no te complementas con la ing inversa sobre todo en el depurado..y comparando los detalles

lo que encuentro complicado es lo que viene...digamos que logras todos los detalles, y todas las secciones, lo que sigue es como el proyecto de sirpe....
http://guandedio.no-ip.org/sirpe.html

saludos Apuromafo

no entiendo  como obtener el offset de ubicacion de la sección. como lo hace CFF Explorer.


Título: Re: Valor CFF explorer?
Publicado por: apuromafo CLS en 8 Agosto 2012, 00:22 am
como obtuviste el nombre (.text) y los otros, simplemente es eso, la direccion,


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 8 Agosto 2012, 00:37 am
como obtuviste el nombre (.text) y los otros, simplemente es eso, la direccion,

Trabajo con autoit. lo que hago es crear la estructura.

la relleno. y luego obtengo los datos de la estructura.

pero en ninguna parte veo la forma de obtener el offset.



Título: Re: Valor CFF explorer?
Publicado por: MCKSys Argentina en 8 Agosto 2012, 00:56 am
La estructura PE es muy simple. En el caso de las secciones, tienes los valores Virtual y los Raw. Los Raw son offsets en el file. Los virtuales son despues de haber mapeado en memoria.

Como te dije antes, el formato PE explica todo...

Saludos!


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 8 Agosto 2012, 01:01 am
La estructura PE es muy simple. En el caso de las secciones, tienes los valores Virtual y los Raw. Los Raw son offsets en el file. Los virtuales son despues de haber mapeado en memoria.

Como te dije antes, el formato PE explica todo...

Saludos!

ya me he leído varias veces pero todavía no lo capto.

como otener :S el offset. ese valor 000001B0  no se de donde sale :S


Título: Re: Valor CFF explorer?
Publicado por: apuromafo CLS en 8 Agosto 2012, 01:10 am
de donde comienza el pe, y comienza la sección .text,  (el puntito ), .text ese es el lugar dentro del PE header... donde comienza esa sección

me extraña como es posible automatizar ver algo sin pasar por el peheader


Título: Re: Valor CFF explorer?
Publicado por: apuromafo CLS en 8 Agosto 2012, 01:12 am
lo mejor es que pidas ayuda en scripting para leer el pe header en autoit

esto es para ese foro:
http://foro.elhacker.net/scripting-b64.0/

o bien intentes mejorar la idea de
http://www.autoitscript.com/forum/topic/67513-pe-scope/


saludos Apuromafo


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 8 Agosto 2012, 01:22 am
gracias haciendo lo que dices :S haha No habia tomado en cuenta el tamaño, tomando el tamaño de IMAGE_DOS_HEADER+IMAGE_NT_HEADERS solo me faltan 100  que no se de donde saldrían para llegar al offset que quiero.

muchas gracias por tu tiempo.


Título: Re: Valor CFF explorer?
Publicado por: Danyfirex en 8 Agosto 2012, 18:22 pm
Pueden darlo por Solucionado.

Solución



;e_lfanew+IMAGE_NT_HEADERS+IMAGE_DOS_HEADER+IMAGE_FILE_HEADER+sección


o también



;MAGE_NT_HEADERS+valor e_lfanew


Saludos Y muchas gracias.