Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: aguml en 25 Diciembre 2014, 22:26 pm



Título: Obtener puntero a un objeto de una victima
Publicado por: aguml en 25 Diciembre 2014, 22:26 pm
Pues esa es la idea pero no se si será imposible porque de momento no doy con la tecla.
Lo que quiero es implementar cosas en una dll para inyectarla a una aplicacion de un tercero la cual no hace esas cosas y luego inyecto codigo a la aplicacion para que cargue mi dll y ejecute una funcion que hay en ella. El problema es que para que funcione mi funcion de la dll necesito pasarle el puntero de un objeto de dicha aplicacion pero no se como conseguir esa direccion.
En una aplicacion de prueba que he hecho hago esto:
Código:
DWORD *dir = (DWORD*)AddFlow1; //0x47FF20
Funcion(dir);//Ejecutamos la funcion de la dll
pues lo que necesito conseguir en la aplicacion del tercero es el valor de ese objeto pero no se como conseguir ese valor ya que como mucho sabria obtener el handle a ese objeto pero nada mas.
¿Alguien podria ayudarme?


Título: Re: Obtener puntero a un objeto de una victima
Publicado por: MCKSys Argentina en 26 Diciembre 2014, 00:47 am
Hola aguml!

La verdad, no sabía si preguntarte por acá o por CLS. De todas formas, si la app maneja un objeto/instancia de clase, debería guardar la referencia en una variable.

Además, quizás deberías pensar en parchear la función que hace el "save" del objeto y no crear vos una clase que tenga ese método (no sé si me explico).

Si el instalador no es muy grande, podrías subirlo a algún server así lo podemos mirar...

Saludos!


Título: Re: Obtener puntero a un objeto de una victima
Publicado por: aguml en 26 Diciembre 2014, 01:33 am
el caso es que es un componente visual que se instala y se crean los componentes en la paleta para añadirlos en los forms y va con un .ocx. Al añadirlo en tiempo de diseño no se yo como será. El componente es el addflow 5.4 y la aplicacion de la que necesito obtener el puntero del objeto es el visustin ultimo. Ahora mismo no tengo el pc a mano pero juraria que es el visustin 7. El visustin esta hecho en VB nativo. El problema es que el visustin es un demo que le falta codigo y por tanto faltan todos los codigos que guardan, exportan, imprimen, editan y mas, asrmas de que al dibujar los diagramas hace cosas como colocar etiquetas con la palabra demo, rotar los diagramas, eliminar partes del diagrama, y alguna mas. Practicamente lo he solucionado todo con un loader debugger y aprovechando una debilidad ya que el programa crea un archivo temporal que usa para trabajar internamente y luego lo borra. Pues con esa vulnerabilidad lo he solucionado casi todo menos el tema del editor que no se usan archivos intermedios ni nada pero el editor trabaja con addflow el cual trae los metodos de guardar, exportar, copiar al portapapeles... Y solo necesito el puntero al componente para poder ejecutar sus metodos desde mi dll.