![]() |
Como escribir ciertos bytes en un exe y eliminarlos luego !
Estimados, hacia años que no entraba a este increible foro. Un abrazo enorme a todos.
Resulta que necesito simplemente corromper un exe y solo mi aplicacion debe ser capaz de devolerlo al estado original y ejecutarlo. Supuse que escribiendo unos bytes al inicio corrompo el exe y eso justamente es lo que sucedio. Pero no supe como eliminar esos bytes y volverlo a su estado original. Por favor si me pueden ayudar les agradeceria demasiado. Un par de metodos como EscribirBytes y que escribiera amoclubdelphi y otro que simplemente se llamara RemoverBytes y eliminara amoclubdelphi del archivo y lo volviera a su original. Gracias de antemanos y de nuevo agradecido de que en nuestro planeta tierra exista un foro tan increible como este. |
Hola, ¿cómo lo escribiste? muestra tu código y explica exactamente dónde tienes la duda.
|
Escribir Bytes !
Cita:
Hola Casimiro, gracias por responder. El codigo que tengo para escribir algunos bytes viene quedando mas o menos asi:
Lo que sucede es que con ese codigo corrompo ese .exe, pero necesito de alguna forma volver a deshacer eso. O si tienen alguna idea mejor pues la utilizaria. |
Hola.
Si te entendí bién, supongo que este ejemplo te servirá de guía: Para que sea mas funcional, a diferencia del ejemplo, deberías almacenar la cadena que corrompe el archivo en un medio perdurable, de modo que puedas recuperarla luego. Saludos :) |
gracias !
Gracias amigo, voy a probar a ver como va y te dejo saber. Muchisimas gracias !
|
@ecfisa muchas gracias por la ayuda, pero ese metodo no me conviene. La idea es tener unos bytes fijos que de antemano conozcamos, escribirlos al inicio. Y en futuras ejecuciones de mi Sowftware, simplemente borrarlos. O sea romper cierto exe una sola vez, y luego solamente eliminar eso cada ves que se ejecute mi app.
Te explico: Yo estoy haciendo un launcher para un juego y te voy a distribuir el launcher con el ejecutable del juego ya con ciertos bytes al inicio o al final, impidiendote que lo ejecutes directamente. Por debajo mi launcher lo que hara es cojer ese .exe, copiarlo hacia otro lugar, eliminarle esos bytes y ejecutarlo desde ese lugar (la carpeta temp por ejemplo). Lo que te quiero decir es que necesito romper el exe una sola vez y que sea fijo lo que le tenga que eliminar para poderlo restaurar, me entiendes mas o menos?. Segun estuve testeando esa funcion que hiciste si, funciona genial, pero no me conviene tener que estar guardando ese valor constantemente ni mucho menos y ademas, ya ese exe el del juego se le va a dar a los usuarios roto, el launcher lo que tendria es que revertirle lo que tenga agregado, o sea los bytes para volverlo ejecutable de nuevo. Me explico mas o menos? Lo ideal seria, escribirle 5 bytes fijos y luego de haberlo corrompido, tener la funcion que le elimine esos 5 bytes (fijos) y ya lo vuelva a su estado original. Puede ser 1 byte, 10 bytes, lo que sea, al inicio o al final, donde sea, pero que sean fijos y que yo pueda simplemente eliminarlos cuando estime necesario. Gracias de nuevo y espero me entiendas. |
Hola.
¿ Y no te sirve entregar el ejecutable con la cadena ya alterada ? Podes usar (o modificar) la función del ejemplo anterior dentro de tu lanzador, para cambiar la cadena alterada por la original que previamente hayas obtenido. La cadena original podrías almacenarla como constante o como recurso en tu lanzador... Saludos :) |
Ok si entiendo lo que dices, muchas gracias y te dejo saber. El metodo que me diste funciona excelente, solo es adaptarlo. Thanks u !
|
La franja horaria es GMT +2. Ahora son las 10:47:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi