Título: como eliminar los pif o exe (Virus) Code para Mejorar "Solo Experto en Batch" Publicado por: raftv79 en 18 Abril 2015, 05:22 am Aquí traigo otro code, es muy interesante, esto lo hize con la ayuda del foro de esta pagina, podría decir que es una ensalada de código de muchos moderadores y le he sacado el jugo a este programita, lo comparto con ustedes porque necesito mejorarlo y convertirlo en exe con icono, ya probe mucho convert pero me da error, pruebenlo ustedes, y veras que funciona, pero quiero respuesta, mejorar el code y convertirlo en exe sin error de windows.
si logramos resolver este tema, lanzo otro programa mas interesante. Código
Mod: los códigos deben ir en etiquetas GeSHi Título: Re: como eliminar los pif o exe (Virus) Code para Mejorar "Solo Experto en Batch" Publicado por: Eleкtro en 18 Abril 2015, 08:54 am Batch no es un lenguaje compilado así que para "convertir" a executable necesitas un packer, y para establecer o modificar el icono principal puedes utilizar cualquier editor de recursos cómo Resource Hacker (en caso de que el packer no tenga esta característica, claro está).
No es necesario ser experto en el lenguaje, basta con saber un poco de empaquetamiento de aplicaciones (application packaging) y administración de tablas de recursos, aunque si te quedas más tranquilo te puedo decir que tengo Batch muy exprimido desde hace una década o más. Te recomiendo utilizar la aplicación ExeScript Editor http://www.scriptcode.com/download/ Si te lanza algún fallo, especifica el mensaje de error y la información adicional (si alguna), recuerda que no somos magos. Saludos! Título: Re: como eliminar los pif o exe (Virus) Code para Mejorar "Solo Experto en Batch" Publicado por: raftv79 en 18 Abril 2015, 14:56 pm Elektro, Gracias por la Asesoría, a veces parece tontas, pero son importante saberla, ya me pongo con eso, después de hacerle prueba yo te aviso.
con respecto al code; como lo ves tu; que le hace falta o tienes un as bajo la manga, tienes Batch mejor que este?. otra cosa mas Elektro, yo tuve un programa hace tiempo y lo perdí, ahora no recuerdo como se llama ni lo consigo, es que yo podría saber que programa estaba utilizando dicho archivo, me mostraba hasta la librería que estaba en ejecución para el dicho archivo. si no es mucho que pedir..... esas son mis inquietudes....... Título: Re: como eliminar los pif o exe (Virus) Code para Mejorar "Solo Experto en Batch" Publicado por: raftv79 en 19 Abril 2015, 21:33 pm De verdad nadie, ningún visitante va aportar de sus conocimientos en este tema?....
Título: Re: como eliminar los pif o exe (Virus) Code para Mejorar "Solo Experto en Batch" Publicado por: Eleкtro en 21 Abril 2015, 21:25 pm con respecto al code; como lo ves tu Genericamente hablando y siendo un Batch-Script, el código lo veo de la única manera que lo puedo ver, es decir, simplón, feo, tedioso e ineficiente, pero el empeño que le hayas puesto para desarrollar el código tiene un valor distinto (mayor que el propio código en si mismo). que le hace falta 1. Organización del código fuente. El código que has publicado carece de cualquier tipo de estructura, ni organización ni indentación, para ser sincero es horrible analizar el código ya que lo tienes todo muy lineal y "arreu" ...aunque de todas formas las limitaciones de este "lenguaje" apenas dan libertad para estructurar el código debídamente, pero podrías haberlo hecho mucho mejor. Se que es poco código, pero personálmente soy bastante estricto en ese sentido, no t elo tomes a mal, aparte, tener 3 o 4 bloques de código con nombres tipo "a1", "n", "n1", y que repitan código... también es horrible verlo, y eso sucede por que con Batch no se aprende nada que sea reálmente útil, nada. Por ejemplo, esto lo repites en dos bloques: Citar Código: :n En lugar de eso, escribe un método rehusable cómo este: Código: :WriteHeader :: %1 = Descripción del argumento %1; %2 = Archivo de destino Y entonces lo usas: Código: :n 2. Limpieza de código en deshuso. La variable "PTH" no la utilizas en ninguna parte del código, además de eso repites el código en otros bloques: Citar Código: Set /p PTH=%1 y además lo estás seteando incorréctamente ya que la variable de argumento %1 contiene comillas dobles, así que en todo caso deberías hacerlo así para poder usar luego dicha variable de forma correcta: Código: Set /P "PTH=%~1" Nota: No me he fijado si en el resto del código hay otros comandos en deshuso. 3. Cierre de argumentos. Cómo norma general los argumentos se delimitan al encontrar un espacio, y hay que encerrarlos con comillas dobles, por ende, esto no te funcionará en ningún PC cuyo nombre de usuario contenga espacios: Citar Código: Copy %0 %homedrive%\Users\%username%\AppData\Roaming\Microsoft\Windows\SendTo\ Además de eso, también deberías expandir la variable de argumento para eliminarle las comillas dobles y añasírselas tú: Código: "%~0" 4. Depurar el código, y utilizar los operadores correctos (de agrupación y redireccionamiento) Esto es otra de las cosas más horribles que se pueden hacer en Batch, la siguiente linea de código tiene muchos fallos en uno, la concatenación single-line de tantos comandos y la confusión que eso crea al leerlo, la ausencia de los operadores de agrupación ( ) crea conflictos y posibles errores de sintaxis al determinar donde se delimita la concatenación de comandos, utilizar la pipe de redireccionamiento cuando seguramente no es tu intención (ya que el comando attrib no tiene una entrada de datos), evaluar un string sin encerrarlo con comillas (si uno de los dos strings estuviese vacio o con espacios en el nombre daría error de sintaxis): Citar Código: for /r X:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i" Puedes hacerlo así: Código: For /R "X:\" %%i in ("*%%p") Do ( O bien en una sola linea: Código: For /R "o:\" %%i in ("*%%p") Do ( If "%%~zi" EQU "%%s" ( (del /f /q /s /a "%%i" && md "%%i" || attrib +h +s +r +a +i "%%i") ) ) 5. Simplificación de código. Debes tratar de evitar hacer cosas cómo esta repetición de código: Citar Código: for /r o:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i" Sírvete de la utilidad de FOR para algo más util, cómo esto: Código: Set "DriveLetters=C D E F G H I J K L M N O" Nota: Aunque realmente lo que deberías hacer para aumentar la eficiencia es obtener e iterar una lista de unidades de disco duro conectadas al PC, con el comando FSUTIL o WMIC: http://foro.elhacker.net/scripting/sobre_archivos_bat-t402932.0.html;msg1899628#msg1899628 Puede que haya otras cosas más a destacar en el código cómo por ejemplo la funcionalidad principal del código... no es la más correcta, pero sinceramente no me apetece analizar más de lo necesario un código escrito en Batch y menos de una "vacuna", batch no sirve para eso y creo que con lo dicho es suficiente para que puedas mejorar algunos aspectos fundamentales tanto en el uso de batch-script como en la programación general. Mi último consejo es que lleves a cabo tus proyectos de programación en cualquier otro lenguaje compilado o de scripting que esté capacitado para la tarea, menos Batch. Espero que el pequeño análisis haya servido de algo. Saludos! Título: Re: como eliminar los pif o exe (Virus) Code para Mejorar "Solo Experto en Batch" Publicado por: Eleкtro en 21 Abril 2015, 21:26 pm yo tuve un programa hace tiempo y lo perdí, ahora no recuerdo como se llama ni lo consigo, es que yo podría saber que programa estaba utilizando dicho archivo, me mostraba hasta la librería que estaba en ejecución para el dicho archivo. ¿A que archivo te refieres?, por "archivo" entiendo que te refieres a un archivo ejecutable (puesto que hablas de cargar librerías/módulos). Si lo que quieres es averiguar las dependencias de una aplicación de forma genérica puedes utilizar la herramienta Dependency Walker (http://www.dependencywalker.com/). Saludos |