Título: BCP: Best Cactus Programmer Publicado por: Mad Antrax en 22 Octubre 2006, 18:35 pm Hola gente!
Aqui presento el BCP (Best Cactus Programmer). Presento este concurso para animar a la gente que programe sencillas funciones que cumplan unos requisitos y objetivos claros. Los ganadores seleccionados serán añadidos como "Colaboradores" en la ventana de "About" y en el "Leame" del nuevo Cactus Joiner, añadiendo su nick, mail y pagina web como motivo de agradecimiento. Para ello voy a formular a lo largo de esta semana unas cuantas preguntas sobre programación. El primer usuario que responda mi problema correctamente se añadirá su código en el cactus y pondré su nick en los creditos. Primera pregunta: Tengo una variable con una ruta completa de un archivo, necesito sacar el nombre del archivo completo y su extensión. El nombre del archivo no tiene una longitud estática. Y la estensión del archivo suele ser de 3 carácteres, aunque podría tener más o menos carácteres. Pido una sencilla función con un solo parámetro de entrada (la ruta completa del archivo) y 2 variables de salida: El nombre del archivo y su extensión. TERMINADO: Hendrix y WarGhost FUNCIÓN: Código: Public Function ExtraerCadena(cadena As String, l As Long) As String Citar 1 = Devuelve el nombre 2 = Devuelve la extesion 3 = Devuelve el FullName Segunda pregunta: Necesito una función para cifrar programas. No se puede usar la función XOR ya que nos puede aparecer el carácter Chr(0) (fin de cadena). 1) La función no puede ser muy extensa y no tiene que consumir muchos recursos. 2) Aparte tiene que ser recursiva (que sirva tanto para cifrar/descifrar opcional) 3) Si ciframos un virus con esa función, los AV no tienen que detectarlo TERMINADO: Hendrix FUNCIÓN: Código: Public Function crypt(cadena As String) As String Tercera pregunta: Necesito una función (o varias) que me devuelvan el nombre completo y su extensión del propio programa que estamos ejecutando. Por ejemplo: Si el programa se llama 'hola.exe' que devuelva 'hola.exe' si se llama 'adios.bat' que devuelva 'adios.bat'. La variable App.EXEName solo devuelve el nombre del ejecutable, pero no su extensión. TERMINADO: Lympex[/b] FUNCION:[/b] Código: Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long Título: Re: Ayuda para el cactus 2.5 Publicado por: Hendrix en 22 Octubre 2006, 18:51 pm Aki esta:
Código: Public Function Sacarext(cadena As String) As String Salu2 Título: Re: Ayuda para el cactus 2.5 Publicado por: Mad Antrax en 22 Octubre 2006, 18:57 pm Muchas grácias por el código Hendrix. Lo he probado y funciona de maravilla. Aunque creo que puede ser simplificado y mejorado en tan solo una sola función. Voy a dejar a ver si otro usuario se anima ha hacer lo mismo en una sola función.
De todas formas, por ser el primero y de haberte tomado la smolestias incluiré tu Nick en la sección de colaboradores del Cactus :) Gracias por colaborar!! ::) Título: Re: Ayuda para el cactus 2.5 Publicado por: Hendrix en 22 Octubre 2006, 19:01 pm Aki esta remodelada:
Código: Dim ruta As String Salu2 Título: Re: Ayuda para el cactus 2.5 Publicado por: WarGhost en 22 Octubre 2006, 19:08 pm bueno aquí la dejo mi aportación:
Código: Public Function ExtraerCadena(cadena As String, l As Long) As String Citar 1 = Devuelve el nombre 2 = Devuelve la extesion 3 = Devuelve el FullName ;D Salu2, David Título: Re: Ayuda para el cactus 2.5 Publicado por: Mad Antrax en 22 Octubre 2006, 19:17 pm Bueno, Hendrix se ha tomado la molestian en responder el primero y encima mejorar su código. Y WarGhost ha hecho una función sencilla, rapida y eficaz, sin FOR ni SPLIT.
En esta primera prueba saldrán Hendrix y WarGhost como colaboradores de el cactus. Felicidades!! Título: Re: BCP: Best Cactus Programmer Publicado por: Hendrix en 22 Octubre 2006, 19:39 pm Segunda parte
Asi a bote pronto te e echo esto: Código: Public Function crypt(cadena As String) As String xD xD xD es reversible....aunke es facililla de ver los AV's no lo cantarian... Salu2 Título: Re: BCP: Best Cactus Programmer Publicado por: Mad Antrax en 22 Octubre 2006, 19:42 pm Ok, esto serviría, de momento te apunto y dejo el tema abierto a ver si alguien se le ilumina la bombilla y nos saca otra función :rolleyes:
Felicidades. Ojo que voy a ir trabajando sobre el primer post, si podreis ver que preguntas estan abiertas o cerradas y quienes con los actuales ganadores Título: Re: BCP: Best Cactus Programmer Publicado por: NYlOn en 22 Octubre 2006, 22:56 pm Lo unico que podes lograr cifrando el codigo es que los AVs no detecten el exe bindeado. Al momento que desencriptes el bicho y lo ejecutes el AV lo va a detectar.
Si todavia necesitas cifrar, podes usar el metodo Huffman que ademas de cifrar reduce el codigo, haciendo el ejecutable final mas liviano. Saludos.- Título: Re: BCP: Best Cactus Programmer Publicado por: WarGhost en 22 Octubre 2006, 23:08 pm lo de la encriptacion huffman también se lo dije.
Lo unico que podes lograr cifrando el codigo es que los AVs no detecten el exe bindeado. Al momento que desencriptes el bicho y lo ejecutes el AV lo va a detectar. ya pero si también adjuntas un Av-killer indetectable pues ya as sirve de algo. ;D Salu2 Título: Re: BCP: Best Cactus Programmer Publicado por: Mad Antrax en 24 Octubre 2006, 00:01 am He puesto ya la tercera y última pregunta. Esta en el primer mensaje de todos, abajo de todo. Espero que puedan ayudarme
Saludos!! :rolleyes: Título: Re: BCP: Best Cactus Programmer Publicado por: WarGhost en 24 Octubre 2006, 00:51 am puff que jodido xD creo que lo mas optable es predefinir lo antes de ser creado el archivo sino chungo xD
Título: Re: BCP: Best Cactus Programmer Publicado por: sch3m4 en 28 Octubre 2006, 23:01 pm para la opcion que estar sin terminar, se puede usar la API "GetModuleFileName" y cojer los 3 últimos caracteres http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getmodulefilename.asp ;)
Título: Re: BCP: Best Cactus Programmer Publicado por: Hendrix en 29 Octubre 2006, 11:08 am Exacto, y aki va un ejemplo en VB de como se utilizaria:
Código: Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long Salu2 Título: Re: BCP: Best Cactus Programmer Publicado por: Mad Antrax en 29 Octubre 2006, 12:27 pm Gracias Hendrix por el código, aunque la API nos la ha facilitado Lympex y también me escribió otro código más simple en un mensaje privado:
Código: Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long Creo que el ganador de la tercera es Lympex (aunque grácias por tu dedicación en este post Hendrix) Saludos!! Título: Re: BCP: Best Cactus Programmer Publicado por: Hendrix en 29 Octubre 2006, 13:29 pm Ok.... ;D ;D
Salu2 Título: Re: BCP: Best Cactus Programmer Publicado por: Nymphetaminito en 29 Octubre 2006, 21:46 pm ... ... Excelentes programadores ... ... ...
Código: ' Aún más sublime la segunda solución que presentaron... acá les dejo una que consume 6GB de memoria física (?????) Código: Function GetBaseName(ByVal Filename As String) As String Y cifrado simple y rápida... hay ejemplos en el foro. Título: Re: BCP: Best Cactus Programmer Publicado por: WarGhost en 29 Octubre 2006, 23:17 pm enig, que es esto?
|