CREANDO UN ANTIVIRUS

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

CREANDO UN ANTIVIRUS

Mensaje por yasmany »

Hola srs. :smt041 Como les decia iva a volver y durante todo este tiempo he estado estudiando el manual de autoit
esta muy interesante.....y tambien de ves en cuando he revisado el foro para tener basees
Estoy en la construccion de un antivirus y QUISIERA q me den una manito

1- hABRA COMO PONER EL NOMBRE DE LA UNIDAD Alado de las letras de las unidades q aparecen en el combo
2 -Digamos q estoy en la pestaña Herramientas y HAGO CLIC [Analizar] se podria hacer q pase ala pestaña
Registro PARA ver lo q se ha analizado

Aqui va un prototipo
ESTE ES UNA PARTE DEL CODE

**************************************************+

Código: Seleccionar todo

#include <ComboConstants.au3>
#include <GUIComboBox.au3>
#include <GUIConstantsEx.au3>

; GUI
$interfaz = GUICreate("Antivirus USBCTRL", 620, 405, -1, -1)
;BOTONES
$btnAnalizar = GUICtrlCreateButton("&Analizar", 369, 355, 60, 25)
GUICtrlSetTip(-1, "Analizar unidad seleccionada")

;UNIDADES
$Combo1 = GUICtrlCreateCombo("Seleccione la unidad", 10, 60, 193, 25, BitOR($CBS_DROPDOWN, $CBS_UPPERCASE, $CBS_AUTOHSCROLL))
_GUICtrlComboBox_AddDir($Combo1, "", $DDL_DRIVES, False)

;REGISTRO 
$tab = GUICtrlCreateTab(10, 100, 600, 250)
$itemRegistroDeSucesos = GUICtrlCreateTabItem("Registro")
$lista = GUICtrlCreateListView("Deteccion           |Tipo    ", 18, 150, 575, 190, -1)
$itemRegistroDeSucesos = GUICtrlCreateTabItem("Herramientas")
GUISetState(@SW_SHOW)

;CASOS
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			         Exit
		Case $btnAnalizar
			Clic_Analizar()
	EndSwitch
WEnd

Func Clic_Analizar()
	$unidad=GUICtrlRead($Combo1)
	$busqueda=FileFindFirstFile($unidad&"\*.*")
	While 1
		$elementos=FileFindNextFile($busqueda)
		if @error then ExitLoop
		GUICtrlCreateListViewItem($unidad&"\"&$elementos&"|TIIIIPO|",$lista)

		WEnd
		FileClose($busqueda)
EndFunc   ;==>Clic_Aplicar
**************************************************+

3- Como hago para eliminar todo el contenido del ListView HE INTENTADO y no se como
4- Como se desplaza la barra hacia abajo del listview para poder observar la ultima linea
cada vez q se analiza [Analizar]
y la ultima

5- Mediante un boton [Desinfectar] obtener todo los valores de la primera columna e irles quitando el atributo de oculto
(Lo de quitar atributos ya lo entendi gracias a Bassicos y Ximorro) me interesaria saber como obtener los valores osea
la direccion (D:\trabajos)

ME DISCULPAN Q NO HE PUESTO TODO EL CODE SOLO PUSE ALGO REFERENTE A LO Q TENGO en mi miniproyecto LLAMADO antivirus q YA VA POR
LA LINEA 800 y algo mas Y me dio ganas de ajustar esos detalles.
DESDE YA MUCHAS GRACIAS
ZALUDOZ

PD: Cual es el comando para abrir un directorio (CARPETA )o unidad
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: CREANDO UN ANTIVIRUS

Mensaje por arkcrew »

Hola amigo, estoy pensado cosas para tu código, en breve recibirás más información sobre mis ideas, y posibles cosas que añadir a tu código..

Aqui va la solucion a eliminar datos del listview

Código: Seleccionar todo

#include <GuiListView.au3>
_GUICtrlListView_DeleteAllItems($tu_listview)
Espero que te sirva, un saludo!
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: CREANDO UN ANTIVIRUS

Mensaje por yasmany »

Hola carnal arkcrew
Gracias por la respuesta, podrias ayudarme con el resto de preguntas que estan planteadas
en cuanto culmine os daré para observalo para que brinden nuevas ideas e irlo mejorando
me he pasado algunas malasnoches aun realizandolo
Zalu2 :smt039
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: CREANDO UN ANTIVIRUS

Mensaje por arkcrew »

Mira, te he añadido creo cosas muy útiles, como lo que pedias del scrolldown (lo saqué de la página de autoitsript.com, créditos a DeSwa) y lo demás que lo he implementado en un momento...

Te dejo el code y te explico:

Código: Seleccionar todo

#include <ComboConstants.au3>
#include <GUIComboBox.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
; GUI
$interfaz = GUICreate("Antivirus USBCTRL", 620, 405, -1, -1)
;BOTONES
$btnAnalizar = GUICtrlCreateButton("&Analizar", 369, 355, 60, 25)
GUICtrlSetTip(-1, "Analizar unidad seleccionada")

;UNIDADES
$Combo1 = GUICtrlCreateCombo("Seleccione la unidad", 10, 60, 260, 25, BitOR($CBS_DROPDOWN, $CBS_UPPERCASE, $CBS_AUTOHSCROLL))
;_GUICtrlComboBox_AddDir($Combo1, "", $DDL_DRIVES, False)
getdrives()
;REGISTRO
$tab = GUICtrlCreateTab(10, 100, 600, 250)
$itemRegistroDeSucesos = GUICtrlCreateTabItem("Registro")
$lista = GUICtrlCreateListView("Deteccion           |Tipo    ", 18, 150, 575, 190, -1)
$itemRegistroDeSucesos = GUICtrlCreateTabItem("Herramientas")
GUISetState(@SW_SHOW)

;CASOS
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $btnAnalizar
			Clic_Analizar()
	EndSwitch
WEnd

Func Clic_Analizar()
	_GUICtrlListView_DeleteAllItems($lista)
	$contenidocombo = StringReplace(GUICtrlRead($Combo1), "(", "<unidad>")
	$contenidocombo = StringReplace($contenidocombo, ")", "</unidad>")
	$unidad = StringRegExp($contenidocombo, "<(?i)unidad>(.*?)</(?i)unidad>", 1, 1)
	$unidad = $unidad[0]
	$busqueda = FileFindFirstFile($unidad & "\*.*")
	While 1
		$elementos = FileFindNextFile($busqueda)
		If @error Then ExitLoop
		GUICtrlCreateListViewItem($unidad & "\" & $elementos & "|TIIIIPO|", $lista)
        bajar()
	WEnd
	FileClose($busqueda)
EndFunc   ;==>Clic_Analizar

Func getdrives()
	$var = DriveGetDrive("all")
	If Not @error Then
		For $i = 1 To $var[0]
			GUICtrlSetData($Combo1, DriveGetLabel($var[$i]) & "(" & $var[$i] & ")" & "Tipo: " & DriveGetType($var[$i]))
		Next
	EndIf
EndFunc   ;==>getdrives


Func bajar()
$i = _GUICtrlListView_GetItemCount($lista)
_GUICtrlListView_ScrollItem($Lista, $i)
EndFunc

Func _GUICtrlListView_ScrollItem($ListView1, $iItemIndex=-1, $fPartialOK = True, $iIncrement = 16)
Local $iSuccess1, $iSuccess2
If $iItemIndex = -1 Then $iItemIndex = _GUICtrlListView_GetItemCount($ListView1)-1
$iSuccess1 = _GUICtrlListView_Scroll($ListView1, 0, $iIncrement)
$iSuccess2 = _GUICtrlListView_EnsureVisible($ListView1, $iItemIndex, $fPartialOK)
Return $iSuccess1 And $iSuccess2
EndFunc
Te he corregido algunas funciones como verás, por ejemplo a la hora de mostrar las unidades, muestra más información, y como verás, para el análisis, he modifiocado alguna cosilla en cuanto a leer la letra de la unidad del combox.
He añadido además la función para vaciar el list cada vez que se pulsa en analizar...
Espero ver más código de la aplicación..
Un saludo
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: CREANDO UN ANTIVIRUS

Mensaje por yasmany »

Hola de nuevo
Gracias por el aporte muchas gracias
Soy principiante TE PIDO puedes poner comentarios en cada code q ubicas (para entender q hace c/u)
Hola hay una pequeña fallita Cuando retiro la unidad esta todavia se muestra en el combo (Como se soluciona)
Zaludos :smt039
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: CREANDO UN ANTIVIRUS

Mensaje por yasmany »

GRACIAS CARNAL DE NUEVO he aprendido ESO DE LLAMAR UNA FUNCION creoq de esa forma se ahorra utilizar tanto codigo (desde mi forma de ver)
Solucionaste mi problema sobre bajar la barra ......mil gracias
Hay algunas cositas mas...ACERCA de q si estoy en otra pestaña y cuando hago clic [Aanalizar] deberia ir hacia la pestaña Registro

Podrias explicarme hacerca del for q utilizas
Me disculpas por mi falta de experiencia
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: CREANDO UN ANTIVIRUS

Mensaje por yasmany »

Puse un mensaje al final pero no lo muestra solo la primer linea del mensaje muestra

Código: Seleccionar todo

    #include <ComboConstants.au3>
    #include <GUIComboBox.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    ; GUI
    $interfaz = GUICreate("Antivirus USBCTRL", 620, 405, -1, -1)
    ;BOTONES
    $btnAnalizar = GUICtrlCreateButton("&Analizar", 369, 355, 60, 25)
    GUICtrlSetTip(-1, "Analizar unidad seleccionada")

    ;UNIDADES
    $Combo1 = GUICtrlCreateCombo("Seleccione la unidad", 10, 60, 260, 25, BitOR($CBS_DROPDOWN, $CBS_UPPERCASE, $CBS_AUTOHSCROLL))
    ;_GUICtrlComboBox_AddDir($Combo1, "", $DDL_DRIVES, False)
    getdrives()
    ;REGISTRO
    $tab = GUICtrlCreateTab(10, 100, 600, 250)
    $itemRegistroDeSucesos = GUICtrlCreateTabItem("Registro")
    $lista = GUICtrlCreateListView("Deteccion           |Tipo    ", 18, 150, 575, 190, -1)
    $itemRegistroDeSucesos = GUICtrlCreateTabItem("Herramientas")
    GUISetState(@SW_SHOW)

    ;CASOS
    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
          Case $btnAnalizar
             Clic_Analizar()
       EndSwitch
    WEnd

    Func Clic_Analizar()
       _GUICtrlListView_DeleteAllItems($lista)
       $contenidocombo = StringReplace(GUICtrlRead($Combo1), "(", "<unidad>")
       $contenidocombo = StringReplace($contenidocombo, ")", "</unidad>")
       $unidad = StringRegExp($contenidocombo, "<(?i)unidad>(.*?)</(?i)unidad>", 1, 1)
       $unidad = $unidad[0]
       $busqueda = FileFindFirstFile($unidad & "\*.*")
       While 1
          $elementos = FileFindNextFile($busqueda)
          If @error Then ExitLoop
          GUICtrlCreateListViewItem($unidad & "\" & $elementos & "|TIIIIPO|", $lista)

	    bajar() ;llamamos a la funcion

       WEnd
	

       FileClose($busqueda)
   GUICtrlCreateListViewItem("Analisis Finalizado", $lista)
			GUICtrlCreateListViewItem(@HOUR & ":" & @MIN & ":" & @SEC, $lista)
			GUICtrlSetColor(-1, 0x0000ff) ; azul
    bajar() ;LA PONGO AQUI PERO NO BAJA HASTA EL MENSAJE FINAL
EndFunc   ;==>Clic_Analizar

    Func getdrives()
       $var = DriveGetDrive("all")
       If Not @error Then
          For $i = 1 To $var[0]
             GUICtrlSetData($Combo1, DriveGetLabel($var[$i]) & "(" & $var[$i] & ")" )
          Next
       EndIf
    EndFunc   ;==>getdrives


    Func bajar()
    $i = _GUICtrlListView_GetItemCount($lista)
    _GUICtrlListView_ScrollItem($Lista, $i)
    EndFunc

Func _GUICtrlListView_ScrollItem($ListView1, $iItemIndex=-1, $fPartialOK = True, $iIncrement = 16)
    Local $iSuccess1, $iSuccess2
    If $iItemIndex = -1 Then $iItemIndex = _GUICtrlListView_GetItemCount($ListView1)-1
    $iSuccess1 = _GUICtrlListView_Scroll($ListView1, 0, $iIncrement)
    $iSuccess2 = _GUICtrlListView_EnsureVisible($ListView1, $iItemIndex, $fPartialOK)
    Return $iSuccess1 And $iSuccess2
    EndFunc

como le ubico
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: CREANDO UN ANTIVIRUS

Mensaje por arkcrew »

Dejo las funciones comentadas...

Código: Seleccionar todo

Func Clic_Analizar() ; funcio analizar
	_GUICtrlListView_DeleteAllItems($lista) ; Elimino todo el contenido del listview
	If GUICtrlRead($Combo1) = "Seleccione la unidad" Then ; condicion: si el contenido del combo NO es una unidad muesto error
		MsgBox(0, "Error", "Selecicone unidad")
	Else ; de cualquier otra manera, continuo con el proceso
		#cs
			La funcion stringreplace, nos permite reemplazar el caracter deseado dentro de una cadena de texto
			por el que especifiquemos
		#ce

		$contenidocombo = StringReplace(GUICtrlRead($Combo1), "(", "<unidad>")
		$contenidocombo = StringReplace($contenidocombo, ")", "</unidad>")
		#cs
			La funcion stringregexp, nos permite exportar el contenido que hay entre dos variables definidas, como es el caso de
			<unidad>XXXX</unidad>, al pasar la funcion, obtengo de resultado XXXX que en este caso sería la letra de la unidad
		#ce
		$unidad = StringRegExp($contenidocombo, "<(?i)unidad>(.*?)</(?i)unidad>", 1, 1)
		$unidad = $unidad[0]
		; defino $unidad como $unidad[0] ya que se trata de una cadena de texto, que en este caso, solo contiene un valor en su
		; interior, establecido para el valor [0], si tuviera mas de uno, pues seguiria [1], [2] etc



		$busqueda = FileFindFirstFile($unidad & "\*.*")
		While 1
			$elementos = FileFindNextFile($busqueda)
			If @error Then ExitLoop
			GUICtrlCreateListViewItem($unidad & "\" & $elementos & "|TIIIIPO|", $lista)
			bajar()
		WEnd
		FileClose($busqueda)
	EndIf
EndFunc   ;==>Clic_Analizar

Func getdrives()
	;esta función nos recoe todos los dispositivos conectados al pc
	$var = DriveGetDrive("all"); se alamcenan en est variable
	If Not @error Then ; si no hay error continuamos
		For $i = 1 To $var[0] 
			;meto un for, es decir un bucle que irá desde el valor 0 hasta $var[0], que es el número max de dispositivos que hay
			;si suponemos que tenemos un total de 10 dispositivos, $var[0] valdrá 10
			If DriveStatus($var[$i]) <> "READY" Then ; soluciona  tu error, si el dispositivo no está listo, no lo muestra, así se acelera todo
			Else
				GUICtrlSetData($Combo1, DriveGetLabel($var[$i]) & "(" & $var[$i] & ")" & "Tipo: " & DriveGetType($var[$i]))
			EndIf
		Next
	EndIf
EndFunc   ;==>getdrives
Espero que me entiendas XD no soy muy bueno explicando, pero se intenta,
He aprovechado y he corregido algunos fallos que se me han pasado... espero ver tu code de 800 lineas, aunque para un antivirus.. si no controlas los comandos de bucles, while-wend, do-until y for-next... mal vamos, te sugiero que te los mires en la ayuda de autoit
Un saludo!
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: CREANDO UN ANTIVIRUS

Mensaje por yasmany »

ok no os preocupeis
Lo publicaré en un cierto tiempo 1 o 2 semanas estoy en eso
ayudadme sobre pasar a la siguiente pestaña estando en otra mediante el clic en [analizar]
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: CREANDO UN ANTIVIRUS

Mensaje por Ximorro »

yasmany, ¿qué va a hacer el antivirus? porque por ahora sólo veo que intentas desproteger los archivos ocultos, lo que no sé para qué sirve al antivirus pues igual se puede acceder a los archivos aunque estén ocultos.
¿Contra qué tipo de virus vas a proteger? ¿cómo? Aunque no tengas la interfaz nos podrías mostrar el código que protege un archivo o comprueba si un archivo tiene virus, eso sería muy interesante.

¿800 líneas de código y acabas de descubrir las funciones? Igual vas muy rápido, has escrito mucho y aún no controlas los mecanismos básicos de la programación como funciones o bucles. Mírate eso bien, además con funciones probablemente podrás reducir el código al agrupar tareas repetitivas.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: CREANDO UN ANTIVIRUS

Mensaje por yasmany »

EL "ANTIVIRUS" es solo para unidades removibles hasta el momento
_____________________________________________
Hola XIMORRO q tal ... he estado estudiando un poco (claro recien empecé con esta movida y aun no se NADA)
Lo que quiero hacer nonono lo que estoy realizando es...mejor te doy un ejemplo
Tu mas que yo conoces el antivirus USB security
http://www.techgravy.net/2008/06/usb-di ... ction.html
este solo lo que hace es detectar exes DESDE MI PUNTO DE VISTA sehan buenos o malos igual te los muestra y MANIPULAR el registro
....Bueno lo mio es algo parecido
Pues es simple.. detecta accesos directos y una cierta lista de carpetas q contienes ejecutables y ejecutables en la raiz de la memoria de acuerdo a la lista de jecutables (MUCHA REDUNDANCIA LA MIA )... pero bueno
Tambien muestra los archivos ocultos TODOS lo que muestra lo hace en diferente color algo parecido a la PRESENTACION " DE REGISTRO DE SUCESOS" de NOD32
Es decir :
_______________________________________________________________
Detalles TIPO ESTADO
____________________________|__________|_____________|__________
ocultos color GRis | OCULTO | estable |
accesos direc OTRO COLOR | Acceso di | estable |
carpetas OTRO COLOR | Car conten | estable |
_________________________________________________________________

Tambien incorpora otras opciones como
Rendimiento del sistema (en la que limpias temporales y algunas cosas mas)
Para ver informacion del sistema, y version del WINDOWS , ggg y del Programa.
Y desde el programa podes instalarlo HAY UNA OCION EN EL MENU PARA INSTALARLO
OTRa opcion es para proteger la unidad MIRA esto era lo que no me entendias hace un timpillo

Mediante la creacion de una carpeta llamada CON, A ESTA carpeta ningun virus podra modificarla, eliminarla por lo que
la creo mediante DirCreate ("\\.\g:\con") esos dos SLAsh FUERZAN LA CREACION DE ESAS CARPETAS AY UN MONTON DE CARPETAS q NO se pueden crear de forma simple
POR LO QUE APROVECHO LA SITUACION y ubico dentro el antivirus para que puedan acceder y desde ahi tambien puedan DESINFECTAR la unidad ya que esta carpeta siempre estará visible y nunca será ocultada por nada, ASI lo intenten
Y para quitar realizo lo mismo remplazo CREATE X REMOVE y listo eliminada..

Hace cierto tiempo estudiaba sobre la manipulacion de los registros Y EN FIN SI SE UN POQUITO DE ESO
- Iniciar con el sistema (esto para cuando termine de hacer el Scanner)
- Agregar al menu contextual ("Utilizar Antivirus USBCTRL") pero mi falla es aunque si lo abre al antivirus NO LE HE HECHO PARA Q TOME LA UNIDAD Q HA HECHO CLIC osea la letra..(si hiciera en la G: ) esa letra la ubique en el combo y la analize PERO BUENO VOY POCO A POQUITO
HAQUI OS DEJO UNPAR DE IMAGNES
http://imageshack.us/photo/my-images/710/empezando.png/
http://imageshack.us/photo/my-images/70 ... ando2.png/



Bueno no es grancosa pero por algo se empieza no les parece
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: CREANDO UN ANTIVIRUS

Mensaje por Ximorro »

¿Entonces es un detector de malware? ¿Funcionará buscando Exes de malware que tengas en una lista predefinida?

¿Cómo ejecutas un programa desde una carpeta de esas especial? ¿Funciona hacer...:
\\.\g:\con\miprograma.exe ?

Oye el GUI está muy chulo, muy profesional.
¿El tamaño del disco está bien calculado? Si son KBytes hay muchos decimales ¿no?
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: CREANDO UN ANTIVIRUS

Mensaje por arkcrew »

Estoy con Ximorro, exactamente, dices que es algo como el usb security, pero exactamente como lo vas a hacer para detectar el malwqare, porque por ahora veo que solo muestras si nel archivo es oculto etc..

En cuanto a la interfaz, la verdad está muy currada, y en cuanto al tamaño del disco.. quizas sería mejor que redondearas a MegaBytes no?

Un saludo
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: CREANDO UN ANTIVIRUS

Mensaje por yasmany »

Hola de nuevo
Pues si es un detector de malware...y de funcionar claro q funca de eso no hay duda...algunos de mis compañeros de clase y un ingeniero tambien tienen instalado mi software bueno tambien en alguna maquinas del laboratorio ...y si va de maravilla pues digo q uno de los ingenieros tiene por lo que ayer nos iba a pasar un proyecto de programacion en java y cuando introducia la memoria de algunos este sonaba gggg.........a pues les comento que el programa tambien suelta un sonido cuando el scanner ha detectado algun tipo de malware.... el tipico sonido de avast "Aviso su sistema tiene virus" PERO yo le modifique la voz le hice que se gruesa "Hombre"...

Acerca de carpetas especiales,en estas no hay como ingresar al contenido.
La carpeta con no es una carpeta especial....por lo que se ingresa sencillamente POR lo que tambien no hay como eliminarla, renombrarla u ocultarla..esta es una ventaja para que el programa se encuentre dentro, en caso de infeccion esta será la unica carpeta que esté visible....

ARkcrew como yo decia anteriormente eso de ocultos era un ejemplo..no digo q solo eso detecta pero bueno

Alguien de vosotros podeis ayudarme a redondear esos kb en mb

Gracias por la opinion acerca del GUI :smt001

ZALU2 :smt039
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: CREANDO UN ANTIVIRUS

Mensaje por Ximorro »

¿Cómo has calculado esos kb? ¿por qué tiene tantos decimales?
Para pasar a megas simplemente divide entre 1024.

¿¿Qué ya está instalado en un montón de ordenadores?? ¿Pero por ahora qué hace el programa, para qué lo están usando?
Por ejemplo lo de limpiar temporales sólo vale la primera vez que lo ejecutas, que acabas de ver qué carpetas hay que borrar. Como te decía esos nombres son aleatorios... ¿¿quieres decir que hay que modificar y recompilar el programa cada vez que quieres limpiar los temporales??

Me gustaría ver el núcleo del programa, la parte que detecta el malware.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: CREANDO UN ANTIVIRUS

Mensaje por yasmany »

Hola de nuevo carnales
Pues no lo estan usando al que ahora lo realizo...si no un prototipo creado en otro lenguaje
En este lenguaje lo estoy mejorando en todo.........el anterior pesaba 9mb ahora pesará no mas de 2 mgb
Bueno ya estaremos dialogando luego.... he terminado un programita para ocultar y desocultar archivos y carpetas este es mi code

Código: Seleccionar todo

#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=folder.ico
#AutoIt3Wrapper_Outfile=Show_AND_Hide_Files.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_Comment=Software gratuito [email protected]
#AutoIt3Wrapper_Res_Description=Desocultador de archivos y carpetas
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Yasmany Curimilma
#AutoIt3Wrapper_Res_Language=1034
#Obfuscator_Parameters=/striponly
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>

FileInstall("12.jpg", @TempDir & "\", 1)

Global $unidad

$GUI = GUICreate("Hide and Show", 250, 370, -1, -1)
GUISetBkColor(0xFFFFFF)
GUICtrlCreatePic(@TempDir & "\12.jpg", 0, 0, 250, 50)
$desocultar = GUICtrlCreateButton("Desocultar", 175, 335, 70, 30)
$ocultar = GUICtrlCreateButton("Ocultar", 105, 335, 70, 30)
$combo = GUICtrlCreateCombo("Seleccione la unidad", 10, 60, 230, -1, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_UPPERCASE)) ;#include <ComboConstants.au3>
obtenerUnidades()
$lista = GUICtrlCreateList("", 10, 85, 230, 210)
GUICtrlSetColor(-1, 0x666666)
GUISetState()
$ch_SelectAll = GUICtrlCreateCheckbox("Realizar accion para toda la lista", 10, 290, 240, 16)
$ch_mostrarTodos = GUICtrlCreateCheckbox("Mostrar todos los archivos", 10, 310, 240, 16)
GUICtrlCreateLabel("By: YMCT", 12, 345, 80, 50)
GUICtrlSetFont(-1, 9, 800, 0, "MS Serif")
GUICtrlSetState(-1, $GUI_DISABLE)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			FileDelete(@TempDir & "\12.jpg")
			Exit
		Case $combo
			verOcultos()

		Case $ch_mostrarTodos
			AllFiles()

		Case $desocultar
			startShow()
		Case $ocultar
			startHide()
	EndSwitch
WEnd


Func obtenerUnidades()
	$var = DriveGetDrive("All")
	If Not @error Then
		For $i = 1 To $var[0]
			If DriveStatus($var[$i]) <> "READY" Then
			Else
				GUICtrlSetData($combo, DriveGetLabel($var[$i]) & " (" & $var[$i] & ")")
			EndIf
		Next
	EndIf
EndFunc   ;==>obtenerUnidades

Func valorOut()
	$comboContenido1 = StringReplace(GUICtrlRead($combo), "(", "<unidad>")
	$comboContenido2 = StringReplace($comboContenido1, ")", "</unidad>")
	$unidad1 = StringRegExp($comboContenido2, "<(?i)unidad>(.*?)</(?i)unidad>", 1, 1)
	$unidad = $unidad1[0]

EndFunc   ;==>valorOut

Func verOcultos()
	If GUICtrlRead($ch_mostrarTodos) = $GUI_CHECKED Then
		AllFiles()
	Else
		GUICtrlSetColor($lista, 0x666666)
		GUICtrlSetData($lista, "")
		If GUICtrlRead($combo) = "Seleccione la unidad" Then
			GUICtrlSetState($ocultar, $GUI_DISABLE)
			GUICtrlSetState($desocultar, $GUI_DISABLE)
		Else
			valorOut(); tomo los valores comprendidos en el item del combo
			$status = DriveStatus($unidad)
			If StringInStr($status, "NOREADY") Then
				MsgBox(48, "Aviso", "Unidad no disponible")
			ElseIf StringInStr($status, "INVALID") Then
				MsgBox(48, "Aviso", "Unidad no disponible")
			Else
				GUICtrlSetState($ocultar, $GUI_ENABLE)
				GUICtrlSetState($desocultar, $GUI_ENABLE)

				$search = FileFindFirstFile($unidad & "\*.*")
				While 1
					$file = FileFindNextFile($search)
					If @error Then ExitLoop

					$estado = FileGetAttrib($unidad & "\" & $file)
					If StringInStr($estado, "H") Then
						GUICtrlSetData($lista, $unidad & "\" & $file)
					EndIf

				WEnd
				FileClose($search)
			EndIf
		EndIf
	EndIf
EndFunc   ;==>verOcultos

Func AllFiles()
	If GUICtrlRead($combo) = "Seleccione la unidad" Then
	Else
		valorOut()
		If FileExists($unidad) Then
			If GUICtrlRead($ch_mostrarTodos) = $GUI_CHECKED Then
				$search = FileFindFirstFile($unidad & "\*.*")
				While 1
					$file = FileFindNextFile($search)
					If @error Then ExitLoop
					GUICtrlSetData($lista, $unidad & "\" & $file)

				WEnd
				FileClose($search)
				GUICtrlSetColor($lista, 0x000000)
			Else
				verOcultos()
			EndIf
		Else
			MsgBox(16, "Aviso", "La unidad no está disponible")
		EndIf
	EndIf
EndFunc   ;==>AllFiles

Func startShow()
	$verifi = GUICtrlRead($combo)
	If ($verifi) = "Seleccione la unidad" Then

		MsgBox(48, "Aviso", "Debe selecionar la unidad")
		GUICtrlSetState($combo, $GUI_FOCUS)
	Else
		valorOut()
		If FileExists($unidad) Then

			$est = GUICtrlRead($ch_SelectAll)
			If ($est) = $GUI_CHECKED Then
				$search = FileFindFirstFile($unidad & "\*.*")
				While 1
					$file = FileFindNextFile($search)
					If @error Then ExitLoop
					FileSetAttrib($unidad & "\" & $file, "-sh")

				WEnd
				FileClose($search)
				verOcultos()
			Else
				$select = GUICtrlRead($lista)
				If $select == "" Then
					MsgBox(48, "Aviso", "Debe seleccionar un item de la lista")
				ElseIf not ($select) Then
					MsgBox(48, "Aviso", "Elemento no encontrado")
				Else
					FileSetAttrib($select, "-raSH")

					$verificar = FileGetAttrib($select)
					If StringInStr($verificar, "H") Then
						MsgBox(16, "Aviso", "Acceso denegado")
					Else
						verOcultos()
					EndIf
				EndIf

			EndIf
		Else
			MsgBox(48, "Aviso", "Unidad no disonible")

		EndIf
	EndIf


EndFunc   ;==>startShow

Func startHide()
	$verifi = GUICtrlRead($combo)
	If ($verifi) = "Seleccione la unidad" Then

		MsgBox(48, "Aviso", "Debe selecionar la unidad")
		GUICtrlSetState($combo, $GUI_FOCUS)
	Else
		valorOut()
		If FileExists($unidad) Then

			$est = GUICtrlRead($ch_SelectAll)
			If ($est) = $GUI_CHECKED Then
				$search = FileFindFirstFile($unidad & "\*.*")
				While 1
					$file = FileFindNextFile($search)
					If @error Then ExitLoop
					FileSetAttrib($unidad & "\" & $file, "+sh")

				WEnd
				FileClose($search)
				verOcultos()
			Else
				$select = GUICtrlRead($lista)
				If $select == "" Then
					MsgBox(48, "Aviso", "Debe seleccionar un item de la lista")
				ElseIf not ($select) Then
					MsgBox(48, "Aviso", "Elemento no encontrado")
				Else
					FileSetAttrib($select, "+rash")

					$verificar = FileGetAttrib($select)
					If StringInStr($verificar, "H") Then
						MsgBox(16, "Aviso", "Acceso denegado")
					Else
						verOcultos()
					EndIf
				EndIf

			EndIf
		Else
			MsgBox(48, "Aviso", "Unidad no disponible")

		EndIf
	EndIf
EndFunc   ;==>startHide
ENLACE DE IMAGEN
http://imageshack.us/photo/my-images/83 ... grama.jpg/

AQUI EL ENLACE PARA DESCARGARLO
http://199.91.153.109/ab3ksixxow0g/t0tf ... _Files.exe

PESA 325.87 KB
No creo que haga falta describirlo
Por fa denme sugerencias VAYA Q SI LAS NECESITO como podria hacer para ahorrar mas codigo
Esta bien en publicar estos codigos sencillos PARA Q ALGUIEN VENGA Y SE APODERE?? YA Q ES MUY FACIL DE ENTENDERLO

ZALU2 :smt039
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: CREANDO UN ANTIVIRUS

Mensaje por Ximorro »

¡Qué chulos te quedan los GUIs!

Alucino con el código, hace nada no te aclarabas con los bucles y funciones y has hecho un código superbien estructurado y limpio.
No tengo tiempo para analizarlo con detalle, pero creo que no hace falta, tiene muy buena pinta.
Una cosa sí me ha llamado la atención, porque casualmente he trabajado últimamente con expresiones regulares:
¿Por qué haces los StringReplace antes del StringRegExp? Puedes hacerlo directamente con el StringRegExp mirando directamente los paréntesis en vez de esa especie de xml que haces en el StringReplace.
Esta bien en publicar estos codigos sencillos PARA Q ALGUIEN VENGA Y SE APODERE?? YA Q ES MUY FACIL DE ENTENDERLO
¿Que si está bien?
Tú paséate por el foro, LO NORMAL es que la gente muestre sus códigos porque este es un foro participativo, tanto para pedir y dar ayuda a la programación como para compartir códigos. Claro que puedes ocultar el código, pero lo normal para pedir una colaboración es mostrar código. Además los códigos que posteamos aquí son ejemplos para que los que saben menos que nosotros aprendan con ellos y en un futuro hagan programas estupendos que nosotros mismos disfrutaremos.

¿Apoderarse? No, eso estaría muy feo, lo que queda claro es que si tú has hecho un código, ese código es tuyo y si se usa hay que dar los créditos correspondientes. Pero no te preocupes, puedes mostrar el código y además protegerlo. Busca información en internet sobre las licencias Creative Commons, puedes licenciar tu software de diferentes maneras (incluso impidiendo que puedan modificarlo, aunque lo mejor es que se pueda modificar con permiso o dando créditos), ¡y es una licencia gratuita!
También, claro, puedes licenciarlo pagando un copyright.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: CREANDO UN ANTIVIRUS

Mensaje por arkcrew »

Ximorro, lo de los stringreg y eso es cosa mía, le pasé en un post anterior esa función y la ha copiado tal cual, lo programé así para que le resultara más facil de entender, no por otra cosa...
Saludos
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: CREANDO UN ANTIVIRUS

Mensaje por Ximorro »

Hombre, si no lo he entendido mal esto sería equivalente a las tres líneas:
$unidad1 = StringRegExp($comboContenido2, "\((.*?)\)", 1, 1)

Si se entiende el otro este también ¿no? (que no es que sea tan fácil de entender, simplemente es igual de complicado ;-) )
Por cierto, que el (?i) no hacía falta, a parte que de hacer falta sólo habría que activarlo una vez.

Otra cosa, creo que he comentado antes que esa no es la forma correcta de comprobar los Checkboxes...
Os lo decía aquí
http://www.emesn.com/autoitforum/viewto ... 997#p11997
No lo digo yo, que no es por ser pesado, retransmito lo que dice en el manual...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: CREANDO UN ANTIVIRUS

Mensaje por arkcrew »

JAjajaja, es cierto tienes razón, podría directam,ente leer dentro de los () en evz de reemplazarlos por <unidad> , que fallo, no me dí cuenta, aunque tampoco puse mucha antención, me limité a copiar una funcion que tenía ya programada en una apli y la adapté al contenido, aunque ciertamente si, como dices se ahorra código y tiempo, ya que evitas los stringreplace y con eso optimizas algo más el código..

Saludos!
Responder