Mayo 25, 2019, 03:26:42 pm

Noticias:

Para hacer tu consulta: debes registrarte y hacer un nuevo tema en la sección que consideres más adecuada. Ver: Acerca de este Foro.


Buscar en el Foro: 

Recientes

Modificar Ejecutable...

Iniciado por FSR, Marzo 11, 2005, 09:58:51 am

Tema anterior - Siguiente tema

FSR

Hola, compañeros.

Hasta ahora he podido crear programas que pueden automidificarse o leer trozos de archivos incrustados en ellos. Me explico: en algunos casos, para no trabajar con archivos extras, al ejecutable final le anexo archivos, de modo que aparezca como un solo archivo ejecutable final. Para acceder a los archivos incrustados, sólo abría el ejecutable y leía desde la parte que me interesaba. Con el Pascal 6.0 no he tenido problemas, pero al tratar de hacerlo desde Freepascal no me lo permite; puedo modificar/accesar cualquier archivo, menos el ejecutable que está corriendo.

El siguiente es un ej. del acceso que quiero hacer:
Program Ejemplo1;
Uses
    Crt, Dos;

Var
    F :File;

Begin
    Assign(F, ParamStr(0));    
    Reset(F, 1);
    .....
    .....
    Close(F);
End.
El módulo que estoy creando es para trabajar en DOS32 (modo DOS; pero desde Windows).

¿Saben cómo puedo accesar a un ejecutable que está corriendo desde FreePascal?

Agradeciendo desde ya vuestras ayudas, bendiciones y Saludos :wink:
Jesús, maestro y salvador


JorgeAVM

No sé si el problema más bien será de Windows que en su sistema de archivos tiene al ejecutable en uso y no puede ser modificado.

Otra idea sería hacer una copia en una carpeta temporal y al finalizar reemplazar el archivo con el de la carpeta temporal.

Suerte! :roll:

FSR

Gracias por contestar, Jorge. El problema es que ni siquiera me permite accesar el archivo para leer (ni pensar en grabar...). No es problema de atributos, porque tengo rutinas para accesar a archivos protegidos contra escritura y no es el caso.

Puede que sea problemas de permisos, pero no sé si en el FreePascal existe alguna orden que permita abrir archivos que ya están siendo accesados.

En realidad, más que modificar, necesito leer sierta información almacenada en el ejecutable.

Saludos :wink:

P.D.: El programa FSPLIT que te envié utiliza la técnica de accesar al ejecutable....
Jesús, maestro y salvador

rherrera72

Aca veo 2 cosas:

El programa que corre se lee a si mismo?
Si es asi, entonces no es mas facil, enviar la porcion a la ram y manipularla?, es decir que al final vas a leer y luego colocar en ram entonces por que hacerlo en 2 pasos?
Si no es asi, entonces mi recomendacion es copiar el archivo con instrucciones de shell y luego leer la copia y no el original para luego borrarlo, idealmente la copia deberia tener un nombre random para que no colisione si hay mas instancias, pero no en el temporal por que a veces se necesitan permisos de administracion para grabar o leer de ahi, y si no es un administrador el que corre el programa pueda fallar.

Saludos

gin

CitarRespuesta #2 en: Marzo 11, 2005, 08:31:57
blog.mbrenes.com

No hay vida en este cuerpo Yo soy nada, sin vida, sin alma ... odiado y temido, estoy muerto para todo el mundo. Escuchame... yo soy el monstruo al que los ho

chaco

Cita de: "shakka"

Aunque es buena la respuesta usualmente en la netiqueta de los foros se solicita no reabrir temas muy viejos, por que es muy probable que quien pregunto ya ni se de la vuelta por aqui.
This is Unix-Land. In quiet nights, you can hear the Windows machines reboot"

JorgeAVM

Es cierto, pero si alguien más tiene la misma consulta, quizá le sirva ;D

rherrera72

Es cierto, al final ya no dijo si se arreglo o no el problema y a mi forma de ver las cosas una respuesta siempre se debe agradecer, y otra cosa es que al revisar la netiquette, si encontre sobre el spam y los flames, pero al contrario dice que si hay pregunta sin respuesta, hay que continuar el hilo hasta que quede como caso cerrado.

Saludos.

JorgeAVM

Así es! no aguante nada! jajaja!!  ;)

FSR

Bueno, pueden cerrar el tema porque ya no insistí más. Con respecto al tirón de orejas por parte de -CHACO-, le encuentro la razón (hace tiempo que ni siquiera puedo entrar a otras cosas que no sean mi trabajo). Por lo menos debería haber dicho que ya no seguía con el tema.

Me disculpo y les agradezco a los que me hayan respondido :)
Jesús, maestro y salvador

JorgeAVM

No hay problema.
Más bien un gusto tenerte por acá nuevamente.


Redes Sociales

Buscar en el Foro: