Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: APOKLIPTICO en 14 Diciembre 2011, 13:31 pm



Título: Llamar a función de Shell Extension Context Menu Handler.
Publicado por: APOKLIPTICO en 14 Diciembre 2011, 13:31 pm
Hola! Como va todo?
Bueno, quería hacer hoy una pregunta sobre context menu handlers.
Tengo un programa que carga opciones en el menú contextual, pongamos por ejemplo el winrar, éste carga las opciones (Comprimir/descomprimir/testear/etc) en el menú contextual asi cuando tenemos un archivo, este puede ser analizado, ver si está comprimido y ofrecer las opciones correctas.
Para esto se llama a una .dll que es un shell extension.

Lo que yo quería saber, es cómo puedo hacer para ya sea llamar a la funcion encargada de hacer la acción que estoy necesitando, o bien para encontrar la ruta del programa que está ejecutando y los parámetros que le está pasando.
Estas son las exports del shell extension que estoy analizando según el dependency walker:

ShellExtension_install
ShellExtension_uninstall
DllCanUnloadNow
DllGetClassObject

Ahora, ninguna de estas funciones me suena que sean lo que estoy necesitando, las primeras dos parecen ser para instalar y desinstalar el shell extension, la siguiente parece que le pide un permiso al dll para descargarlo y la última no tengo idea pero parece ser otra cosa funcional del dll.

Alguien me podría hechar una mano en esto?
Gracias!
Un abrazo
APOKLIPTICO


Título: Re: Llamar a función de Shell Extension Context Menu Handler.
Publicado por: ThunderCls en 14 Diciembre 2011, 16:29 pm
Hola
Te refieres a algo como esto:

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/74.htm (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/74.htm)


Título: Re: Llamar a función de Shell Extension Context Menu Handler.
Publicado por: APOKLIPTICO en 14 Diciembre 2011, 18:05 pm
Nono, necesito saber que funciones/programa llama y con qué argumentos una shell extension ya existente.


Título: Re: Llamar a función de Shell Extension Context Menu Handler.
Publicado por: ThunderCls en 14 Diciembre 2011, 20:16 pm
necesito saber que funciones/programa llama

Esa parte la puedes ver en el registro, por ejemplo,  para los .exe de mi PC:
"C:\Cracking\PEiD\PEiD.exe" "%1"
Se puede ver que se llama al PEiD.exe y el "%1" es el argumento que se le pasa

con qué argumentos

Como dije arriba el argumento se le pasa directamente a la app en cuestion, ahora, para ver dicho argumento oficialmente y ver el funcionamiento de la app de acuerdo a dicho argumento me parece que no queda otra que depurar :(

No se si sigo sin entender o es esto lo que preguntas :P
Saludos


Título: Re: Llamar a función de Shell Extension Context Menu Handler.
Publicado por: APOKLIPTICO en 14 Diciembre 2011, 22:46 pm
Nono, eso no es un context menu handler, eso es simplemente el context menu, es algo simple. Estos son funciones en un .dll. Si vos vas y lo buscás vas a encontrar sólamente un CLSID, yo necesito saber como puedo hacer para llamar a la funcion del context menu handler.

EI: juntando mensajes.

Okay, quizas no se entendió muy bien lo que estoy preguntando: Hay alguna manera de importar una funcion y actuar como si fueses el sistema operativo llamando a lo que se ejecuta cuando hacés click derecho y te aparece el menú contextual?


Título: Re: Llamar a función de Shell Extension Context Menu Handler.
Publicado por: Eternal Idol en 20 Diciembre 2011, 16:06 pm
IContextMenu interface (http://msdn.microsoft.com/en-us/library/windows/desktop/bb776095%28v=vs.85%29.aspx).

Creating Shell Extension Handlers (http://msdn.microsoft.com/en-us/library/windows/desktop/cc144067%28v=vs.85%29.aspx).