Uhhh buenisimo si no hace uso de la estructura esa...
y gracias por aclararle lo del puntero... pense que haciendo un typecast (agregando (int)) lo convertiria en un entero que pueda manejar jeje....
Mi DLL tambien intercepta CreateFile y cuando detecta que "readme.txt" es llamado, guarda el Handle en una variable, llamémosle: elHandle. (sino el juego que he parcheado crashearia mucho antes de llegar a la pantalla donde muestra el Readme.txt pues cientos de archivos se cargan antes de esto)
ahora cuando intercepto ReadFile() simplemente hago esto:
Mi funcion modificada de CreateFile() tambien llama la funcion de descifrar los datos del archivo y guardarlos en la variable llamada BufferDescifrado la cual ReadFile se encarga de transferir a su lpBuffer pero no la he incluido aqui para mantener topic.
Talvez con esto nuevo del puntero que me dijiste funcione, voy a probar mas tarde ahora tengo que ir al laburo MUCHISIMAS GRACIAS por aclararme lo de la estructura. Es un pequeño avance pues me ahorra bastante dolor de cabeza. Aun soy principiante en C++...
y gracias por aclararle lo del puntero... pense que haciendo un typecast (agregando (int)) lo convertiria en un entero que pueda manejar jeje....
Citar
¿Y estas seguro de que el hFile es siempre el mismo?
Mi DLL tambien intercepta CreateFile y cuando detecta que "readme.txt" es llamado, guarda el Handle en una variable, llamémosle: elHandle. (sino el juego que he parcheado crashearia mucho antes de llegar a la pantalla donde muestra el Readme.txt pues cientos de archivos se cargan antes de esto)
ahora cuando intercepto ReadFile() simplemente hago esto:
Código [Seleccionar]
extern "C" void __stdcall __E__675__(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
{
if (hFile == elHandle) {
ReadFile(hFile,lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead,lpOverlapped);
...
Contador = Contador + *lpNumberOfBytesRead;
}
else {
// se llama readfile normalmente y todos vivieron felices para siempre :P digo porque los demas archivos se cargan de maravilla.
ReadFile(hFile,lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead,lpOverlapped);
}
Mi funcion modificada de CreateFile() tambien llama la funcion de descifrar los datos del archivo y guardarlos en la variable llamada BufferDescifrado la cual ReadFile se encarga de transferir a su lpBuffer pero no la he incluido aqui para mantener topic.
Talvez con esto nuevo del puntero que me dijiste funcione, voy a probar mas tarde ahora tengo que ir al laburo MUCHISIMAS GRACIAS por aclararme lo de la estructura. Es un pequeño avance pues me ahorra bastante dolor de cabeza. Aun soy principiante en C++...