Título: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Karcrack en 16 Marzo 2010, 15:58 pm Ya puse una alternativa hace un tiempo:
Código: http://foro.elhacker.net/programacion_vb/srcmaltmutexbas_alternativa_a_createmutex-t243771.0.html Pues aqui va otra trabajando con Semaforos :P Código Minimalista, como a mi me gusta >:D Bueno, para que no sepa para que sirve esto lo explico, es bastante facil. Sirve para que no hayan dos instancias de nuestra aplicacion ejecutandose simultaneamente... Una mejor explicacion de nuestro amigo MadAntrax :P sirve para controlar que nuestra aplicación no sea ejecutada 2 veces en un mismo equipo. Algunos pensareis que eso ya se puede hacer con Código
pero eso no es cierto... si nuestra aplicación se copia en System32 como: programa1.exe y programa2.exe... el usuario podrá ejecutar el programa1.exe y el programa2.exe simultáneamente! Eso puede suponer un problema en el caso de estar programando un troyano o un keylogger (donde lo importante es solo tener una instancia de nuestro malware a la vez). Ejemplo de uso del code: Código
Nota:Probar solo compilado. Saludos :D Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Hasseds en 16 Marzo 2010, 16:22 pm If App.PrevInstance = True Or App.EXEName <> "Project1" Then End
:silbar: Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: ssccaann43 © en 16 Marzo 2010, 16:24 pm Jajaja XD...
Karcrack como dice cobein... Sos un capo...! Me gustó este code...! ::D Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Karcrack en 16 Marzo 2010, 16:24 pm If App.PrevInstance = True Or App.EXEName <> "Project1" Then End Creo que no has leido la cita que he hecho a MadAntrax...:silbar: Si se renombra el fichero y se vuelve a ejecutar el proceso eso no sirve para nada :) Jajaja XD... Gracias :-[ :xD :xDKarcrack como dice cobein... Sos un capo...! Me gustó este code...! ::D Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Hasseds en 16 Marzo 2010, 16:33 pm Jajaja XD... Karcrack como dice cobein... Sos un capo...! Me gustó este code...! ::D +1 , tambien me gustó el code Si se renombra el fichero y se vuelve a ejecutar el proceso eso no sirve para nada :) Como que no sirve, si renombras (en la misma carpeta o ya está corriendo no hay segunda instancia PD: y app.path en el caso que se renombre en otra carpeta Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Karcrack en 16 Marzo 2010, 16:38 pm Como que no sirve, si renombras (en la misma carpeta o ya está corriendo no hay segunda instancia 1- No es buena idea 'hardcodear' un nombre (de carpeta o fichero, da igual), ya que eso es facilmente modificable...PD: y app.path en el caso que se renombre en otra carpeta 2- Prueba a usar el metodo de app.PrevInstance haciendo esto: Compila el ejecutable como "Proyecto1.exe" ejecutalo, ira sin problemas... copia el "Proyecto1.exe" a "Proyecto2.exe" y abrelo... veras que hay dos instancias de la misma aplicacion... Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Hasseds en 16 Marzo 2010, 16:45 pm Como que no sirve, si renombras (en la misma carpeta o ya está corriendo no hay segunda instancia 1- No es buena idea 'hardcodear' un nombre (de carpeta o fichero, da igual), ya que eso es facilmente modificable...PD: y app.path en el caso que se renombre en otra carpeta 2- Prueba a usar el metodo de app.PrevInstance haciendo esto: Compila el ejecutable como "Proyecto1.exe" ejecutalo, ira sin problemas... copia el "Proyecto1.exe" a "Proyecto2.exe" y abrelo... veras que hay dos instancias de la misma aplicacion... If App.PrevInstance = True Or App.EXEName <> "Proyecto1" Then End como va a abrir Proyecto2 si no es = a Proyecto1 Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Karcrack en 16 Marzo 2010, 16:47 pm If App.PrevInstance = True Or App.EXEName <> "Proyecto1" Then End Si, si, mientras uses esa condicion al cambiar el nombre se cerrará... pero te digo que no es buena idea, porque si cambias el nombre al EXE original... es decir, cambias el nombre al "Proyecto1" por incluso "PROYECTO1" dejara de ir.... Por eso no es buena idea :xD O si lo pusieses en un AutoExtraible del WinRar tampoco iria, porque a no ser que digas lo contrario el Winrar pone nombres aleatorios :Dcomo va a abrir Proyecto2 si no es = a Proyecto1 Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Sm0kes en 16 Marzo 2010, 17:49 pm hey genial Karcrack lo tomare como alternativa vere que otros metodos habra me has motivado xD... Salu2 y thankz ;)
Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: cobein en 16 Marzo 2010, 18:34 pm Muy bueno Karcrack =D
@Hasseds, todo eso que pusiste se puede "saltar" por ejemplo copiando la app a otra unidad, mismo nombre etc y va a correr. Digamos que los semaforos o mutex son alternativas mas "globales" Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Hasseds en 16 Marzo 2010, 18:46 pm Muy bueno Karcrack =D @Hasseds, todo eso que pusiste se puede "saltar" por ejemplo copiando la app a otra unidad, mismo nombre etc y va a correr. Digamos que los semaforos o mutex son alternativas mas "globales" Por supusto, eso esta fuera de discucion, ya felicité a KK por el code en un post anterior, pero con las dos App que cité mas app.path en el mismo if se puede lograr una sola instancia. Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: EddyW en 17 Marzo 2010, 01:59 am Había leído en una ocasión sobre esta API ¬¬, pero no le tome atención :P
Gracias por el aporte, esta esta mejor que usar CreateMutex :D SaluDOS!!! Título: Re: [m][SRC][Semaforos!] Alternativa a CreateMutex Publicado por: Karcrack en 17 Marzo 2010, 02:19 am hey genial Karcrack lo tomare como alternativa vere que otros metodos habra me has motivado xD... Salu2 y thankz ;) Hoy mismo antes de empezar con esto estaba pensando formas mas astutas :P Se me ha ocurrido, trabajar con Named Pipes, o trabajar con WM_USER... pero todo esto necesita bastante mas codigo.. y a mi me gustan las cosas minimalistas :)Gracias a todos, me alegro que os haya gustado :D |