elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Editar fichero win32
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Editar fichero win32  (Leído 1,793 veces)
XKC

Desconectado Desconectado

Mensajes: 128



Ver Perfil
Editar fichero win32
« en: 30 Agosto 2018, 20:44 pm »

Hola buenas,
estoy trabajando con la API de windows.
Bien, la cuestion es que quiero editar un fichero.
Lo abro con CreateFileW asi:
Código:
HANDLE hInpFile = CreateFileW(filename, GENERIC_ALL, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

Ahora, quiero leer y escribir a la vez sobre el, esto seria, leo los X primeros bytes(trato el fichero como binario), los edito en el buffer y quiero volver a escribirlos en su correspondiente posicion.
Código:
while (bResult = ReadFile(hInpFile, chunk, chunk_size, &out_len, NULL)) {
if (0 == out_len) break;

readTotalSize += out_len;
if (readTotalSize == inputSize) isFinal = TRUE;

        // Aqui edito chunk

if (!WriteFile(hInpFile, chunk, sizeof(chunk), &written, NULL)) break;
memset(chunk, 0, chunk_size);
}
La cuestion es que esta fallando por algun motivo, en concreto para un archivo con el texto HOLA MUNDO me añade la edicion detras del mismo y no lo sobreescribe, total queda algo asi.
Fichero original
Código:
HOLA MUNDO 
HOLA MUNDO

Resultado que obtengo:
Código:
HOLA MUNDO XXXXXXXXXXXXXXXXXX 
HOLA MUNDO XXXXXXXXXXXXXXXXXX

Resultado que espero:
Código:
XXXXXXXXXXXXXXXXXX 
XXXXXXXXXXXXXXXXXX

Comentar que se que esto la manera de hacerlo correctamente seria con un stream, pero en este caso necesito utilizar estas funciones de la API.
Muchas gracias


« Última modificación: 30 Agosto 2018, 21:07 pm por XKC » En línea

Para poder atacar y vencer con seguridad, ataca donde ellos no puedan defenderse.
Para defenderte y resistir firme, defiéndete en donde ellos no atacarán.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Editar fichero win32
« Respuesta #1 en: 30 Agosto 2018, 21:02 pm »

El resultado que obtienes es igual al que esperas?


En línea

XKC

Desconectado Desconectado

Mensajes: 128



Ver Perfil
Re: Editar fichero win32
« Respuesta #2 en: 30 Agosto 2018, 21:06 pm »

El resultado que obtienes es igual al que esperas?
No, perdona, edito.

Simplemente necesito leer X bytes de un fichero, editarlos en el buffer que los lei y volver a escribirlos en donde estaban.
En línea

Para poder atacar y vencer con seguridad, ataca donde ellos no puedan defenderse.
Para defenderte y resistir firme, defiéndete en donde ellos no atacarán.
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Editar fichero win32
« Respuesta #3 en: 30 Agosto 2018, 21:58 pm »

En API Windows ni idea.
Pero la idea sería que volvieras atrás el puntero del archivo tantos bytes como leíste, grabas  tantos bytes como leíste y continuas con la siguiente escritura.

Un fseek si se usara la biblioteca estándar.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Editar fichero win32
« Respuesta #4 en: 31 Agosto 2018, 17:41 pm »

Hola!

Probaste usar SetFilePointer?

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
editar Fichero
Juegos y Consolas
Syzao 0 1,126 Último mensaje 4 Junio 2006, 22:11 pm
por Syzao
Editar Fichero
Juegos y Consolas
Syzao 0 1,179 Último mensaje 4 Junio 2006, 22:12 pm
por Syzao
Ayuda win32.beginupdateresource(), win32.updateresource(), no funciona.
.NET (C#, VB.NET, ASP)
krosty123 2 3,602 Último mensaje 6 Noviembre 2010, 04:10 am
por krosty123
Win32 en ada.
Programación General
m0rf 0 1,380 Último mensaje 30 Mayo 2012, 17:55 pm
por m0rf
[Solucion] eliminar/editar contenido de un fichero
Programación C/C++
lordluisiv 0 1,409 Último mensaje 5 Mayo 2019, 16:01 pm
por lordluisiv
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines