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.
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!
Cita de: 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!
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.
Vas a tener que revisar el formate PE: http://mirror.sweon.net/madchat/vxdevl/papers/winsys/pefile/pefile.htm
Saludos!
Cita de: 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!
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.
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
Cita de: apuromafo 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
esto no me aclara nada. :rolleyes:
Cita de: 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.
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.
Cita de: karmany en 7 Agosto 2012, 16:22 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.
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
Citar00400178 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
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?
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
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.
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
Cita de: apuromafo 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
no entiendo como obtener el offset de ubicacion de la sección. como lo hace CFF Explorer.
como obtuviste el nombre (.text) y los otros, simplemente es eso, la direccion,
Cita de: apuromafo en 8 Agosto 2012, 00:22 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.
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!
Cita de: 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!
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
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
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
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.
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.