Ahora me fijo.Eso de 1|2 fue lo ultimo que probe xd,lo saque de un modulo de amxmodx que escribe/lee datos en la memoria del motor del juego.
@EDIT
Hay anda ,gracias idolo .
@EDIT
Hay anda ,gracias idolo .
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
int main()
{
char data[] = "asd";
DWORD pid;
HANDLE process;
HWND wnd = FindWindow(0, "ventana");
GetWindowThreadProcessId(wnd, &pid);
process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
if(process==NULL)
printf("[-] Error abriendo proceso.\n");
else
printf("[+] Proceso abierto.\n");
VirtualProtectEx(process, (LPVOID)0x405254, 18, 1|2, 0);
if(WriteProcessMemory(process, (LPVOID)0x405254, (LPVOID)&data, strlen(data), NULL) == 0)
printf("[-] Error escribiendo memoria:%d\n", GetLastError());
else
printf("[+] Memoria Escrita.\n");
CloseHandle(process);
system("PAUSE");
return 0;
}
int main()
{
char data[] = "asd";
DWORD pid;
HANDLE process;
HWND wnd = FindWindow(0, "ventana");
GetWindowThreadProcessId(wnd, &pid);
process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
if(process==NULL)
printf("Error abriendo el proceso.\n");
else
printf("Proceso abierto.\n");
if(WriteProcessMemory(process, (LPVOID)00405254, (LPVOID)&data, strlen(data), NULL) == 0)
printf("Error escribiendo memoria.\n");
else
printf("Memoria Escrita.\n");
CloseHandle(process);
system("PAUSE");
return 0;
}
amxcore.obj : error LNK2019: unresolved external symbol __imp__CharLowerA@4 referenced in function "long __cdecl core_tolower(struct tagAMX *,long *)" (?core_tolower@@YAJPAUtagAMX@@PAJ@Z)
amxcore.obj : error LNK2019: unresolved external symbol __imp__CharUpperA@4 referenced in function "long __cdecl core_toupper(struct tagAMX *,long *)" (?core_toupper@@YAJPAUtagAMX@@PAJ@Z)
jitdebug/amxmodx_mm.dll : fatal error LNK1120: 2 unresolved externals
static cell AMX_NATIVE_CALL core_tolower(AMX *amx,cell *params)
{
/*(void)amx;
#if defined __WIN32__ || defined _WIN32 || defined WIN32
return (cell)CharLower((LPTSTR)params[1]);
#elif defined _Windows
return (cell)AnsiLower((LPSTR)params[1]);
#else
return tolower((int)params[1]);
#endif*/
return 0;
}
static cell AMX_NATIVE_CALL core_toupper(AMX *amx,cell *params)
{
/*(void)amx;
#if defined __WIN32__ || defined _WIN32 || defined WIN32
return (cell)CharUpper((LPTSTR)params[1]);
#elif defined _Windows
return (cell)AnsiUpper((LPSTR)params[1]);
#else
return toupper((int)params[1]);
#endif*/
return 0;
}
#include <windows.h>
#include <winbase.h>
#include <captura.h>
#define DWM_EC_DISABLECOMPOSITION 0
#define DWM_EC_ENABLECOMPOSITION 1
typedef UINT (CALLBACK* DLLFUNC)(UINT);
DLLFUNC DwmEnableComposition;
bool init_dll();
void fix_win_vis_7(bool enable);
bool is_win_vis_7;
int main()
{
if(init_dll()) {
is_win_vis_7 = true;
MessageBox(NULL, "Dwmapi.dll OK", "test", MB_OK | MB_ICONEXCLAMATION);
}
Sleep(5000);
if(is_win_vis_7)
fix_win_vis_7(true);
cap("test.bmp");
if(is_win_vis_7)
fix_win_vis_7(false);
MessageBox(NULL, "Screenshot sacada", "test", MB_OK | MB_ICONEXCLAMATION);
return 0;
}
void fix_win_vis_7(bool enable)
{
DwmEnableComposition(enable?DWM_EC_ENABLECOMPOSITION:DWM_EC_DISABLECOMPOSITION);
}
bool init_dll()
{
HINSTANCE hDLL;
hDLL = LoadLibrary("Dwmapi");
if(hDLL == NULL)
return false;
DwmEnableComposition = (DLLFUNC)GetProcAddress(hDLL, "DwmEnableComposition");
if(!DwmEnableComposition)
{
FreeLibrary(hDLL);
return false;
}
return true;
}