De todos modos, si no te gusta PHANDLE, puedes poner HANDLE*. La razón de que hayan puesto un HANDLE* en esa función es para poder devolver el HANDLE.
Código
*hthread = pi.hThread;
Pues al final lo corregi haciendo la conversión pasando el * intente pero no iba. Pero aún así mi inyector falla cuando hago esto de iniciar un proceso pausado y llamo a la función obviamente si descarto esto funciona. Pero el objetivo es iniciar un proceso de manera pausada, sacar el pid nuevo para ese proceso y luego inyectar una dll en el proceso. Supongo que no debería poner *ph = (PHANDLE)GetCurrentProcess(); ya que estoy llamando a otro proceso diferente que sería el taskmgr.. claro que estaría cerrado yo lo iniciaria. El código es el siguiente:
Código
// injector.cpp: define el punto de entrada de la aplicación de consola.
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <Tlhelp32.h>
#include <wchar.h>
#include <iostream>
usingnamespace std;
void error(char*err);
HANDLE myProc =NULL;
void error(char*err)
{
if(myProc !=NULL) CloseHandle(myProc);
printf("%s", err);
exit(0);
}
HANDLE Startpausedprocess(char*cmd, PHANDLE hthread)//Not const char* because CreateProcess may write on it
{
PROCESS_INFORMATION pi;
STARTUPINFOA si;//STARTUPINFOA is the ANSI version of STARTUPINFO.
ZeroMemory(&si, sizeof(STARTUPINFOA));
si.cb=sizeof(STARTUPINFOA);
if(!CreateProcessA(NULL, cmd, NULL, NULL, false, CREATE_SUSPENDED, NULL, NULL, &si, &pi))//The flag "CREATE_SUSPENDED" will create the process and pause the main thread.
If the online privacy statement is not available, please read our privacy statement offline: C:\Windows\system32\en-US\erofflps.txt
Debugeando podría ver pero aún así se cual es la razón al incluir la función para que arranque mi proceso de manera pausada algo estaré haciendo mal, si me sugieres debuguear podría tambien chekearlo.
Hola hay alguna manera de grabar la sesion de un meeting en teamviewer sin necesidad de tener que grabarlo ocupando la pantalla es decir una vez que abra la sesion se graba y . y al mismo tiempo uno puede estar haciendo otras cosas?
HANDLE Startpausedprocess(char*cmd, PHANDLE hthread)//Not const char* because CreateProcess may write on it
{
PROCESS_INFORMATION pi;
STARTUPINFOA si;//STARTUPINFOA is the ANSI version of STARTUPINFO.
ZeroMemory(&si, sizeof(STARTUPINFOA));
si.cb=sizeof(STARTUPINFOA);
if(!CreateProcessA(NULL, cmd, NULL, NULL, false, CREATE_SUSPENDED, NULL, NULL, &si, &pi))//The flag "CREATE_SUSPENDED" will create the process and pause the main thread.
Sigo teniendo problemas al resolver errores de argumentos. Los errores son los siguientes:
Citar
Build FAILED.
"C:\Users\Androide\Desktop\colo\injector\injector\injector.vcxproj" (default ta rget) (1) -> (ClCompile target) -> c:\users\androide\desktop\colo\injector\injector\injector.cpp(64): error C266 4: 'HANDLE Startpausedprocess(char *,PHANDLE)': cannot convert argument 2 from 'HANDLE' to 'PHANDLE' [C:\Users\Androide\Desktop\colo\injector\injector\injecto r.vcxproj] c:\users\androide\desktop\colo\injector\injector\injector.cpp(63): error C499 6: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [C:\Users\Androide\Desktop\colo\injector\injector\injector.vcxproj ]
0 Warning(s) 2 Error(s)
No me hace la conversión char * correctamente alguna idea como convertir mi entero a char *? Y luego PHandle que diferencia tiene con Handle?
Tienes razon tengo primero que aprender lo basico ejemplo: a crear una ventana con la API de Windows, mis preguntas son muy poco maduras me lanzo a cosas que a lo mejor antes de preguntar deberia plantearme si se lo básico y luego ir entrando a cosas complejas porque la mayoría son asuntos facilmente deducibles y por mi parte no lo estoy resolviendo asi que disculpa. Y tampoco me di cuenta que al final es una funcion luego simplemente hay que pasarle los valores.. luego.. un grave error por mi parte..
Puedes usar detour o api hooking centrado a video juegos. Con eso podrás interceptar las funciones de estos juegos y hacer determinadas cosas(como dispara rcuando la distancia sea X, entre otras muchas cosas).
Aqui te paso un video que intercepta las llamadas del buscaminas para ganar la partida: