elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 00:53  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  [Duda] Olly Debug y NtUnmapViewOfSection
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] Olly Debug y NtUnmapViewOfSection  (Leído 1,725 veces)
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.065


CALL DWORD PTR DS:[0]


Ver Perfil WWW
[Duda] Olly Debug y NtUnmapViewOfSection
« en: 18 Agosto 2009, 23:59 »

Bueno, he intentando solucionarlo de mil maneras por mi mismo, pero ante ésto ya no se que más hacer  :-\. Veréis, estoy intentando hacer un código referente a ésto. Básicamente, lo que quiero hacer, es poder cargar un ejecutable desde memoria (eso ya está) pero que se puede tambien si no tiene tabla de reubicaciones (Relocation Table). Lo que se me ocurrió para hacerlo, es que en vez de mover de sitio el ejecutable que quiero arrancar, mover un loader, me explico mejor:

1- El ejecutable arranca, carga el loader del resource y lo arranca en otro sitio reubicando la imagebase

2- Se ejecuta el loader, "desmapea" la dirección donde se ejecutó el programa en el paso 1 (00400000) y carga el ejecutable que quiero arrancar y que no tiene relocation table

3- Se pasa la ejecución al archivo que acabo de copiar al image base original.

Bueno, pues para liberar memoria en el ImageBase original (0040000) llamo a NtUnmapViewOfSection de la NTDLL, pasándole el proceso actual y el ImageBase original. Despues de varios problemas, debugeando, lo conseguí, pero a medias. El programa sólo funciona si lo ejecuto bajo olly  :huh:. Es la primera vez que me pasa ésto y no tengo ni idea de por qué pasa, pero el error está en NtUnmapViewOfSection.

A ver is alguien sabe algo  :-\.


« Última modificación: 19 Agosto 2009, 00:01 por Hacker_Zero » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 4.392


Clarin miente, TN opera y los giles regurgitan.


Ver Perfil WWW
Re: [Duda] Olly Debug y NtUnmapViewOfSection
« Respuesta #1 en: 19 Agosto 2009, 00:26 »

¿No es mas facil cambiar la imagen base? Incluso podes hacerlo sin la tablita con /FIXED ...


En línea



La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.065


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: [Duda] Olly Debug y NtUnmapViewOfSection
« Respuesta #2 en: 19 Agosto 2009, 00:34 »

No entiendo, la cuestión es que le archivo que no tiene relocation table no lo compilo yo, por lo que no puedo cambiar el imagebase (puedo cambiarla, pero está enlazado de forma que todo depende la la imagebase y se rompería). La idea es poder cargar cualquier archivo ya compilado tenga o no relocation table, y para eso doy por supuesto que no la tiene e intento cargarlo en su imagebase desplazándome yo del sitio. He pensado que a lo mejor hay un conficto a la hora de autodesmapearme, pero que con el olly funciona porque ejecuta la aplicación con más permisos?  :huh: ni idea.

Saludos

Edito: NtUnmapViewOfSection retorna Access Violation(C0000008), supongo que no puedo autodesmapearme aunque esté llamando a la Api deste otra dirección, tendré que pensar en otra cosa. Gracias de todas formas  :).
« Última modificación: 19 Agosto 2009, 00:55 por Hacker_Zero » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.065


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: [Duda] Olly Debug y NtUnmapViewOfSection
« Respuesta #3 en: 19 Agosto 2009, 01:00 »

Gracias por el consejo, pero podrías haberte ahorrado el post. Leyendo tus últimos mensajes creo que al que no le sobra un buen libro es a ti, aunque claro, los libros no suelen hacer milagros  ;).

Saludos  ;)


El mensaje al que contestaba lo han borrado, así parece que le contesto mal a eternal y no es así, si alguien puede borrar éste post tambien mejor  :xD.
« Última modificación: 20 Agosto 2009, 00:49 por Hacker_Zero » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Lambda


Desconectado Desconectado

Mensajes: 369



Ver Perfil WWW
Re: [Duda] Olly Debug y NtUnmapViewOfSection
« Respuesta #4 en: 19 Agosto 2009, 01:16 »

Yo llevo bastante tiempo intentando rebasear un exe sin los relocations pero nunca lo consegui, tambien me gustaria saber si hay alguna manera.
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.065


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: [Duda] Olly Debug y NtUnmapViewOfSection
« Respuesta #5 en: 19 Agosto 2009, 01:24 »

Si no funciona NtUnmapViewOfSection, que parece que no, no se me ocurre otra alternativa  :-\. Bueno, una, usar una dll disassembler que busque las instrucciones que hacen referencia al imagebase y cambialas, pero es mejor dejarlo cómo está  :xD.

Saludos
« Última modificación: 20 Agosto 2009, 00:49 por Hacker_Zero » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Lambda


Desconectado Desconectado

Mensajes: 369



Ver Perfil WWW
Re: [Duda] Olly Debug y NtUnmapViewOfSection
« Respuesta #6 en: 19 Agosto 2009, 01:38 »

Si no funciona NtUnmapViewOfSection, que parece que no, no se me ocurre otra alternativa  :-\. Bueno, una, usar una dll disassembler que busque las instrucciones que hacen referencia al imagebase y cambialas, pero es mejor dejarlo cómo está  :xD.

Saludos

el problema es que hay PUSH 0xADDRESS que son addresses absolutas y no sabes si realmente es una constante o un address de memoria que necesita ser ajustado xD por eso es jodido.
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.065


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: [Duda] Olly Debug y NtUnmapViewOfSection
« Respuesta #7 en: 19 Agosto 2009, 01:53 »

Solucionado  :laugh:. Al final era cuestión de permisos:

Código
RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE,TRUE,0,&bPrev);
 

Ahora me voy a dormir que no tengo la cabeza muy despejada, mañana posteo el código  ;D.

Saludos

Edito: Puse aquí el código.
« Última modificación: 19 Agosto 2009, 11:51 por Hacker_Zero » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda: Debug string
Ingeniería Inversa
.:UND3R:. 6 477 Último mensaje 23 Agosto 2011, 20:40
por apuromafo
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines