Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 70N1 en 20 Diciembre 2014, 16:54 pm



Título: Me podeis explicar este pequeño codigo?. " Llamar a function shellexecute "
Publicado por: 70N1 en 20 Diciembre 2014, 16:54 pm



Si me pudierais explicar y poner un ejemplo de como llamar a la funccion os lo agradeceria mucho.




Archivo toni.h

Código:

#include <windows.h>


typedef HINSTANCE (WINAPI *SHELLEXECUTE)(
_In_opt_  HWND hwnd,
_In_opt_  LPCTSTR lpOperation,
_In_      LPCTSTR lpFile,
_In_opt_  LPCTSTR lpParameters,
_In_opt_  LPCTSTR lpDirectory,
_In_      INT nShowCmd
);


Archivo toni.cpp

Código:

SHELLEXECUTE      shellexecuteS    = NULL;

shellexecuteS  = (SHELLEXECUTE)(*((DWORD *)(dwAddr + 64)));//---> ESTA PARTE NO LA ENTIENDO

ShellExecuteS(NULL, NULL,(char*) "calc.exe", NULL, NULL, SW_SHOWNORMAL);
   


Título: Re: Me podeis explicar este pequeño codigo?. " Llamar a function shellexecute "
Publicado por: Eternal Idol en 20 Diciembre 2014, 17:29 pm
ShellExecute function (http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx).

No se de donde habra salido ese codigo pero mejor recurrir a uno mas limpio.


Título: Re: Me podeis explicar este pequeño codigo?. " Llamar a function shellexecute "
Publicado por: 70N1 en 20 Diciembre 2014, 17:37 pm


lo unico que quiero es llamar a la funccion de esa forma.


Título: Re: Me podeis explicar este pequeño codigo?. " Llamar a function shellexecute "
Publicado por: Eternal Idol en 20 Diciembre 2014, 20:23 pm
Muy bien, crea una estructura en cuyo offset 64 (decimal) haya un puntero a la funcion en cuestion ... dwAddr apuntara al comienzo de la estructura para que funcione. Y asegurate de usar ese codigo solo para 32 bits.