Título: Como conocer el offset de una direccion en Ollydbg? Publicado por: Tinkipinki en 9 Septiembre 2011, 18:13 pm Hola todos:
Pues eso... ¿Como conocer el offset de una direccion? Por ejemplo, nos encontramos en Código: 004012DC 7416 JE SHORT 004012F4 ¿Se podria hacer un script para encontrarlo?....Si es posible este seria un reto perfecto para .:UND3R:.... :silbar: Saludos Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: Иōҳ en 9 Septiembre 2011, 18:25 pm Justo lo mismo preguntaron en CLS (eso creo).
Te pego lo que dijo Guan de dio: Citar casi caulquier editor PE tiene una calculadora para esos fines, el que ya te han comentado o por ejemplo el LordPe que es otro de los más usados. A mano sería - Offset RAW: Dirección en disco - Offset RVA : dirección relativa en memoria - VA: Dirección absoluta en memoria VA = RVA + ImagenBase (lo que suele mostrar el Olly) El offset RAW se calcula así: Lo primero es identificar en que sección se encuentra el VA. Para ello lo mejor es transformar el VA en RVA, ya que los editores muestran la información de las secciones en RVA RVA = VA (dirección de Olly) - Imagen Base Con esto te quedas con las direcciones RVA inicio de sección Offset RAW inicio de sección Y las cuentas son: Offset RAW = (RVA - RVA inicio de sección) + offset RAW comienzo de sección Todo esto está explicado en la introducción de Ricardo que te recomiendo leas. Saludos, GUAN Pd: Creo que con eso queda bien explicado je, y me ahorre de escribirlo yo :) Nox. Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: .:UND3R:. en 9 Septiembre 2011, 18:36 pm en que capítulo exactamente aparece eso?
Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: Иōҳ en 9 Septiembre 2011, 18:45 pm en que capítulo exactamente aparece eso? Sí yo también me pregunte lo mismo... y no se si lo dirá. Pero con estudiar el Formato PE, ya te aclara todo eso :P. Nox. Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: Tinkipinki en 9 Septiembre 2011, 21:29 pm Gracias Иōҳ y .:UND3R:. por vuestras respuestas.
Con el ejemplo de GUAN muy bien explicado como calcularlo manualmente pero si se pudiera hacer con un script o plugin y tener el dato al instante con solo posicionarte el la direccion pues seria mas rapido....y asi ingresar en el club de la vagancia je je .. >:D Saludos Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: Иōҳ en 9 Septiembre 2011, 21:33 pm Gracias Иōҳ y .:UND3R:. por vuestras respuestas. Con el ejemplo de GUAN muy bien explicado como calcularlo manualmente pero si se pudiera hacer con un script o plugin y tener el dato al instante con solo posicionarte el la direccion pues seria mas rapido....y asi ingresar en el club de la vagancia je je .. >:D Saludos Bueno son simple operaciones, que seguro se pueden implementar en un script. Nox. Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: apuromafo CLS en 9 Septiembre 2011, 23:06 pm estudiar el PE, nada mas que la imagebase y al modulo que pertenece..
si es por ir a la direccion bastaria que fuera al eip mov eip, 4012dc o bien los comandos findop, findmem, o findcmd para buscar esa variable mediante comando opcode y otros, recuerda el gci para encontrar mas informacion , gn si es algo mas luego compararias el destino con algo... 004012DC->direccion, si la imagebase es 00400000 luego el offset seria -*>12DC no se..que quieren encontrar..pero un salto no es mucho, mejor es un orden..y cada cosa se da Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: Tinkipinki en 10 Septiembre 2011, 19:18 pm Hola apuromafo
Utilidad, utilidad creo que tiene poca solo era para hacer las modificaciones de saltos directamente en un editor hexadecimal, para encontrar por ejemplo la linea de codigo del JMP y para hacer eso nos hace falta saber el offset... creo Saludos Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: Tinkipinki en 10 Septiembre 2011, 19:51 pm Solo para vagos.... :silbar:
Si buscamos la direccion 004012DC del ejemplo del principio con el W32DSM, al posicionarnos sobre la direccion en la barra inferior nos aparece el offset. La solucion no es mia ni mucho menos, esta sacada de internet. Saludos Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: Tinkipinki en 10 Septiembre 2011, 20:20 pm Me surge otra duda:
Si tenemos un programa con el principio de codigo en el Olly por ejemplo en 401000 con un offset 400 pero mas arriba en el Olly no hay codigo pero estamos en el offset 400 per en el editor hex de 400 a 000 hay mas codigo. ¿Pues donde se encuentran estas lineas de codigo que faltan pertenecientes sa las cabeceras en el Olly? Saludos Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: karmany en 10 Septiembre 2011, 22:07 pm Puedes usar este programa que hice. Tienes también un editor hexadecimal incorporado.
http://tuts4you.com/download.php?view.2790 (http://tuts4you.com/download.php?view.2790) Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: Tinkipinki en 10 Septiembre 2011, 22:17 pm Ok, perfecto. Ademas viene con un help que nos ayuda a comprender el funcionamiento del programa.
Felicitaciones por currarse herramientas como esta... ;-) Saludos Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: apuromafo CLS en 11 Septiembre 2011, 04:01 am buena tool karmany,
desempaque el molebox, con su dependencia, pero extrañamente no logra que la comparacion sea igual y bypasee el check en el packed, pero realmente interesante que lograste editar esas variables como crc o algo.. borre el unpacked, pero como tool no encontre nada raro, como bien habias dicho que desconfiabas del autor, pues solo lo baje..y revise, ahora leyendo tu post claramente estaba tu nombre... buena idea..saludos Apuromafo Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: karmany en 11 Septiembre 2011, 12:01 pm apuromafo a ti no tengo ningún problema en darte el original desempacado.
De todos modos seguramente haga como en Add PE bytes y cuando saque un poquito de tiempo quiero hacerlo bien: quitaré molebox (molebox es excepcional, pero para mis programas gratuitos me resulta caro y no voy a renovar la licencia, no lo veo un programa para mi necesario), crearé un instalador, pondré la librería del editor hexadecimal en el mismo directorio y alguna cosa más. Además he encontrado el código fuente que dejó Yoda (autor de LordPE) de la librería del editor hexadecimal. Está en VC++ 6, tal vez la modifique. Un saludo Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: apuromafo CLS en 13 Septiembre 2011, 01:31 am ok +1
^^ saludos Apuromafo pd:desde hoy hasta no se cuando, tengo internet en casa, asi que no deberia estar tan offtopic.! Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: .:UND3R:. en 26 Septiembre 2011, 04:37 am Citar casi caulquier editor PE tiene una calculadora para esos fines, el que ya te han comentado o por ejemplo el LordPe que es otro de los más usados. A mano sería - Offset RAW: Dirección en disco - Offset RVA : dirección relativa en memoria - VA: Dirección absoluta en memoria VA = RVA + ImagenBase (lo que suele mostrar el Olly) El offset RAW se calcula así: Lo primero es identificar en que sección se encuentra el VA. Para ello lo mejor es transformar el VA en RVA, ya que los editores muestran la información de las secciones en RVA RVA = VA (dirección de Olly) - Imagen Base Con esto te quedas con las direcciones RVA inicio de sección Offset RAW inicio de sección Y las cuentas son: Offset RAW = (RVA - RVA inicio de sección) + offset RAW comienzo de sección Todo esto está explicado en la introducción de Ricardo que te recomiendo leas. Saludos, GUAN he entendido casi todo pero,no logro entender lo que está con rojo, como lo calculo o de donde lo obtengo Si alguien me ayudara, Gracias Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: .:UND3R:. en 26 Septiembre 2011, 06:28 am Solucionado
Título: Re: Como conocer el offset de una direccion en Ollydbg? Publicado por: .:UND3R:. en 27 Septiembre 2011, 18:00 pm Hice un pequeño script:
http://foro.elhacker.net/ingenieria_inversa/scriptscript_para_calcular_offset_de_un_ejectuable-t340094.0.html (http://foro.elhacker.net/ingenieria_inversa/scriptscript_para_calcular_offset_de_un_ejectuable-t340094.0.html) |