Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Alvarito050506

#11
Scripting / Re: Antivirus en Batch
8 Marzo 2019, 20:05 PM
Hola NEBIRE. Sí, conozco Yara y lo he considerado como una posibilidad, pero quiero crear mi propio motor (ya lo estoy haciendo, de hecho).

Es por los motivos ya mencionados que decidí reescribir el programa, en C y utilizando un motor de expresiones regulares y heurística propia.

De igual forma, gracias por el dato y por opinar.
#12
Scripting / Re: Antivirus en Batch
5 Marzo 2019, 23:10 PM
Hola Elektro, sabés que tenés razón en cada aspecto. Y me di cuenta de lo que decís al momento de investigar un poco más a cerca del malware y la seguridad informática.

Es por lo anterior que hice SHIFT+SUPR a la carpeta contenedora del "programa" y empezé a (re)escribirlo desde cero pero en un verdadero lenguaje (C) y utilizando verdaderos métodos antivirus (expresiones regulares y algo de heurística).

Gracias por ser sincero. Saludos.
#13
Scripting / Antivirus en Batch
24 Febrero 2019, 22:18 PM
Hola a todos, este es mi segundo tema en el foro y el primero en la sección "Scripting".

Hace un tiempo -dos días para mi son "un tiempo"- que vengo trabajando en un cleaner o antivirus para memorias externas (pendrives, USBs, tarjetas SD, miniSD y microSD, etc.). Este pequeño programa escrito en Batch limpia y vacuna el dispositivo de almacenamiento externo, detecta si hay malware alojado en él y, si es así, realiza las acciones necesarias para eliminarlo.

Mi programa es muy simple, se ejecuta en la consola de Windows y ni siquiera posee interfaz gráfica. Pronto le agregaré una de estas, que permitirá que tenga más opciones de configuración.

A continuación les dejo el código fuente.
Código (dos) [Seleccionar]
@echo off
title Advanced USB Batch Antivirus
color F0

echo Bienvenido a AUBA (Advanced USB Batch Antivirus).
echo ADVERTENCIA: Este programa puede borrar contenido o información importante. Úselo bajo su propio riesgo.

set /p init=¿Desea continuar? [s/N]
if not %init% == s (
cls
goto end
) else (
cls
)

set /p unit=Ingrese a continuación la letra de la unidad que desea analizar

echo Cambiándole los atributos a los archivos...
attrib /d /s -r -h -s %unit%:\*

if exist %unit%:\*.lnk (
echo Eliminando los archivos de tipo MIME application/x-ms-shortcut...
del /f %unit%:\*.lnk
)

if exist %unit%:\autorun.inf (
echo Eliminando el archivo autorun.inf...
del /f %unit%:\autorun.inf
)

if exist %unit%:\Recycler.exe (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando el virus Win32:Folder/RECYCLER_BIN...
del /f %unit%:\Recycler.exe
)

if exist %unit%:\Desktop.ini (
echo Eliminando el archivo Desktop.ini...
del /f %unit%:\Desktop.ini
)

if exist %unit%:\mugen.vbs (
echo Virus detectado: Win32:VBS/Mugen
echo Eliminando el virus Win32:VBS/Mugen...
del /f %unit%:\mugen.vbs
)

if exist %unit%:\eicar.* (
echo Archivo de prueba detecado: DOS:Test/EICAR_Test_File
echo Eliminando el archivo de prueba DOS:Test/EICAR_Test_File...
del /f %unit%:\eicar.*
)

if exist %unit%:\*update.vbs (
echo Troyano detectado: Win32:VBS/Update_Downloader
echo Eliminando el troyano Win32:VBS/Update_Downloader...
del /f %unit%:\*update.vbs
)

if exist %unit%:\runauto\ (
echo Eliminando la carpeta runauto...
rmdir /s %unit%:\runauto\
)

if exist %unit%:\RECYCLER\ (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando la carpeta RECYCLER...
rmdir /s %unit%:\RECYCLER\
)

if exist %unit%:\Recycler\ (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando la carpeta Recycler...
rmdir /s %unit%:\Recycler\
)

if exist %unit%:\$RECYCLE.BIN\ (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando la papelera de reciclaje (carpeta $RECYCLE.BIN)...
rmdir /s %unit%:\$RECYCLE.BIN\
)

if exist %AppData%\mugen.vbs (
echo Virus detectado: Win32:VBS/Mugen
echo Eliminando los procesos wscript.exe y cscript.exe...
taskkill /im wscript.exe /f
taskkill /im cscript.exe /f
echo Eliminando el virus Win32:VBS/Mugen...
del /f %AppData%\mugen.vbs
)

if exist %Temp%\conhost.exe (
echo Gusano detectado: Win32:Folder/Conhost_PE
echo Eliminando el proceso conhost.exe...
taskkill /im conhost.exe /f
echo Eliminando el gusano Win32:Folder/Conhost_PE...
del /f %Temp%\conhost.exe
echo Eliminando los archivos de tipo MIME application/x-msdownload...
del /f *.exe
)

if exist C:\$RECYCLE.BIN\ (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando la papelera de reciclaje (carpeta $RECYCLE.BIN)...
rmdir /s C:\$RECYCLE.BIN\
)

echo Escribiendo archivo autourun.inf preventivo...
echo 00 > %unit%:\autorun.inf
echo Cambiándole los atributos al archivo autorun.inf...
attrib +h +r +s %unit%:\autorun.inf

echo Eliminando la entrada del registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run...
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /va /f
echo Sobrescribiendo archivo hosts a su configuración de fábrica...
echo # 127.0.0.1 localhost > C:\Windows\System32\drivers\etc\hosts

echo Limpieza completa. Considere utilizar un antivirus para asegurar su computadora y prevenir futuras infecciones.
:end
echo Ejecución terminada. Gracias por usar AUBA.
pause>nul


Espero comentarios, críticas y contribuciones pronto.
Gracias.
#14
@branon32: ¡De nada!
@Machacador: Gracias por la sugerencia y, no, de seguro no le pondremos "SBBHKK" a nuestro sistema operativo (tuve que buscar en internet qué significaba  :xD).
#15
Buen día, según creo, el problema no es nada extraño porque vos tenés la versión 10.0.17134 de Microsoft Windows, mientras la requerida es 10.0.17763. Hay diferencia entre esos dos números  :-\ :rolleyes:.
#16
Hola a todos. Ya subí al repositorio de N2OS un esbozo de kernel. Actualmente puede ser compilado con el comando make en GNU/Linux, pero no en Windows.

Si alguien desea tomarse el tiempo de escribir un Makefile para Windows ¡bienvenido sea!.

Pronto agregaré soporte para el teclado QWERTY (distribución hispanoamericana) y una shell built-in, así que ¡no se queden atrás y envíen sus pull-request :D!

Por las dudas vuelvo a dejar el link al repositorio: https://github.com/Alvarito050506/N2OS

Edición: A continuación, algunas capturas de pantalla del kernel iniciándose y corriendo en QEMU.
Así se ve N2OS en QEMU:




::) ::) ::) It's so cool.  ::) ::) ::)
#17
Buen día ¿podrías especificar el código de error? O sea, algo así:
CitarTraceback (most recent call last):
  File "file3.py", line 1, in main
NameError: name 'random' is not defined
Quizás así sería mucho más fácil de encontrar el error.

Saludos.
#18
Ya creé un repositorio en GitHub. Está aquí: https://github.com/Alvarito050506/N2OS. El repositorio se llama N2OS por "NoNameOS" ::), lo que no significa que ninguno de ellos sea el nombre definitivo.

Ahora en un rato subo un código básico que tengo por ahí. Si alguno no sabe como usar Git o GitHub me avisa y hago una explicación general directamente.

Ah, casi me olvido: hay que definir la documentación mínima requerida que debe acompañar a cada contribución. Propongo algo como esto por cada función:
/*
*
* name: functionName
* params: @paramIn0, @paramIn1, @paramOut0
* return: @returnValue
* description: functionDescription
*
*/


También habría que acordar cuáles compiladores, ensambladores y enlazadores vamos a usar: Personalmente yo prefiero gcc del paquete gcc y as y ld del paquete binutils. Obviamente prefiero trabajar en GNU/Linux o entornos similares (Minix, FreeBSD, etc.).

Posteen ustedes sobre que les parecieron los requisitos de documentación mínima requerida (de ahora en más DMR), en que entorno están habituados a trabajar, con que paquetes o herramientas de software, con qué notación de ensamblador (yo prefiero la notación AT&T, como habrán notado) les gusta trabajar, etc.
#19
Bueno, yendo directamente al código, tendríamos que establecer algunas convenciones de nomenclatura de variables y funciones, documentación mínima requerida, tipos de datos utilizados, etc.

Propongo que creemos los tipos uint8, sint8, uint16. sint16, uint32, sint32 y byte, los cuales han de ser declarados de la siguiente manera:
typedef unsigned char uint8;
typedef char sint8;
typedef unsigned short uint16;
typedef short sint16;
typedef unsigned int uint32;
typedef int sint32;
typedef uint8 byte;


Propongo también que utilicemos la nomenclatura de funciones estándar POSIX y que adjuntemos el prefijo "g" (ge minúscula) a las variables globales.

Ustedes dirán...
#20
¡Gracias @**Aincrad**!

Respecto a tu pregunta, yo desarrollo todos mis programas meramente por hobby, pero quizás a alguien más le sirva como referencia o quizás alguien lo use con fines educativos. Lo que sí, quiero hacerlo libre (licenciado bajo la GPL v2.0) y colaborativo (alojarlo en GitHub).