Menú

Mostrar Mensajes

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ú

Mensajes - [Zero]

#301
Necesito usarlo con una dirección fija, me da igual cual pero es necesario que sea fija. En la documentación de la MSDN dice que es perfectamente posible, y ese parámetro no tendría sentido si no fuera así, pero buscando no encuentro más que gente con el mismo problema e hilos a los que no se llega a una solución. Si esa memoria está reservada, el proceso no la está utilizando aparentemente para nada, intente hacer VirtualFree pero sigue sin funcionar  :-\.

Al ejecutar VirtualQuery VirtualAlloc falla siempre, incluso cuando ésta me devuelve MEM_FREE  :-\.

Saludos




Edito:

Hice ésto para ver si me quedaba algo más claro que pasaba, pero sólo logró confundirme más  :xD:

#pragma comment(linker,"/NODEFAULTLIB")
#pragma comment(linker,"/ENTRY:main")

#include <Windows.h>

int main()
{
MEMORY_BASIC_INFORMATION Buffer;
VirtualQuery((LPVOID)0x00400000,&Buffer,sizeof(MEMORY_BASIC_INFORMATION));

switch(Buffer.State)
{
case MEM_COMMIT:

MessageBoxA(0,"MEM_COMMIT","Info",MB_ICONINFORMATION);

if(!VirtualFree((LPVOID)0x00400000,0x1000,MEM_DECOMMIT))
{
MessageBoxA(0,"Error al desencomendar memoria",0,MB_ICONERROR);
}
else
{
MessageBoxA(0,"Memoria Desencomendada","Info",MB_ICONINFORMATION);

if(!VirtualFree((LPVOID)0x00400000,0,MEM_RELEASE))
{
MessageBoxA(0,"Error liberar memoria",0,MB_ICONERROR);
}
else
{
MessageBoxA(0,"Memoria Reservada Liberada","Info",MB_ICONINFORMATION);
}
}
break;

case MEM_RESERVE:

MessageBoxA(0,"MEM_RESERVE","Info",MB_ICONINFORMATION);

if(!VirtualFree((LPVOID)0x00400000,0,MEM_RELEASE))
{
MessageBoxA(0,"Error liberar memoria",0,MB_ICONERROR);
}
else
{
MessageBoxA(0,"Memoria Reservada Liberada","Info",MB_ICONINFORMATION);
}
break;

case MEM_FREE:
MessageBoxA(0,"Memoria Libre","Info",MB_ICONINFORMATION);
break;
}


if(!VirtualAlloc((LPVOID)0x00400000,0x1000,MEM_RESERVE|MEM_COMMIT,PAGE_EXECUTE_READWRITE))
{
MessageBoxA(0,"Error al reservar memoria en 0x00400000",0,MB_ICONERROR);
return 0;
}

MessageBoxA(0,"Memoria Reservada correctamente en 0x00400000","Éxito",MB_ICONINFORMATION);

return 0;
}

#302
Bueno, pues la duda es lo que dice el título, estoy intentando usar VirtualAlloc o VirtualAllocEx, me da igual, para reservar memoria en una dirección de memoria fija, en concreto en 0x0040000 (teniendo el base address de mi ejecutable en 00300000). Levo días buscando la razón del error pero no encuentro nada que me sirva, ejecutando lo siguiente:


#pragma comment(linker,"/NODEFAULTLIB")
#pragma comment(linker,"/ENTRY:main")

#include <Windows.h>

int main()
{
//CHAR MSG[1024];
//SYSTEM_INFO SystemInfo;
//GetSystemInfo(&SystemInfo);

//wsprintfA(MSG,"%s%X%s%X","MinimumApplicationAddress: ",SystemInfo.lpMinimumApplicationAddress,"\nMaximumApplicationAddress: ",SystemInfo.lpMaximumApplicationAddress);
//MessageBoxA(0,MSG,"Info",MB_ICONINFORMATION);

if(!VirtualAllocEx(GetCurrentProcess(),(LPVOID)0x00400000,0x1000,MEM_RESERVE|MEM_COMMIT,PAGE_EXECUTE_READWRITE))
{
MessageBoxA(0,"Error al reservar memoria en 0x00400000",0,MB_ICONERROR);
return 0;
}

MessageBoxA(0,"Memoria Reservada correctamente en 0x00400000","Éxito",MB_ICONINFORMATION);

return 0;
}


Ojo, linkear el ejecutable con una dirección base diferente de 0x00400000 o en su defecto cambiar la dirección fija a reservar.

Éste código, en mi PC Win7 32bits reserva memoria bien sólo a veces, otras veces falla devolviendo last_error ERROR_INVALID_ADDRESS. Viendo con olly me dice que la dirección no está en uso incluso cuando falla, pero el error es como sí la dirección estuviera ya reservada  :-\.

Gracias por adelandato  :P
#303
Foro Libre / Re: Abandono el foro
29 Agosto 2010, 00:53 AM
Si por culpa de que nadie respondió a tu pregunta has conseguido llegar a una solución por ti mismo, recibiste la mejor ayuda posible  ;).

Saludos
#304
Foro Libre / Re: Bot para Sala de Poker
29 Agosto 2010, 00:39 AM
En el supuesto de que alguien invirtiera tanto tiempo en hacerlo, ganaría con el más de lo que puedes pagar  :P.
#305
Citar« Respuesta #30 en: 25 Enero 2008, 03:25 »

Más de dos años desde la última respuesta, no revivas temas tan antiguos.

Saludos
#306
¿Pero sólo se puede en VB o puedes medir mi código en ASM?

Saludos
#307
Cita de: Og. en  9 Agosto 2010, 17:47 PM
Bueno, en resumen absolutamente todo esta controlado, nada es aleatorio. Excepto el pensamiento humano.

http://es.wikipedia.org/wiki/Relaci%C3%B3n_de_indeterminaci%C3%B3n_de_Heisenberg

Citar
Las partículas, en mecánica cuántica, no siguen trayectorias definidas. No es posible conocer exactamente el valor de todas las magnitudes físicas que describen el estado de movimiento de la partícula en ningún momento, sino sólo una distribución estadística. Por lo tanto no es posible asignar una trayectoria a una partícula. Sí se puede decir que hay una determinada probabilidad de que la partícula se encuentre en una determinada región del espacio en un momento determinado.

Si el tema se va para cuántica a Constance le va a dar algo  :xD .

Saludos

#308
¿Como medimos el tiempo?  :huh: Interesante propuesta, me pongo a ello  ;D.

Saludos
#309
Cita de: soez en  9 Agosto 2010, 01:11 AM
Es delito preguntar? aparte no han sido solo unas horas, nadie nace sabiendo

Lo que te dijo ctlon te lo dijo por tu bien (más fácil hubiera sido responderte), y yo respaldo su consejo, te lo digo por experiencia, tanto por "preguntón" como por "respondón". Si intentas afrontar los problemas por ti mismo y pensando "no lo dejaré hasta que lo comprenda" sí aprenderás realmente, en cambio la gente que al mínimo problema que encuentra pide ayuda realmente no está progresando, solventa el problema en ese momento pero no vive el proceso de aprendizaje necesario para llegar a esa solución.

Saludos  ;)
#310
Lo metes en la nueva sección, tiene que ser un código en ASM en formato shellcode, que no dependa de una IAT ni de una sección data. Luego cambias en EntryPoint hacia donde metiste tu código y listo.

http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2008_taller_de_formato_pe_by_ferchu-t208278.0.html

Mírate el Capitulo III: Agregando una sección con codigo.

Saludos